IsSynchronizedWithCurrentItem (или эквивалентный) для DatePicker? - PullRequest
0 голосов
/ 14 декабря 2009

В настоящее время у меня есть комбинированный список с привязкой к коллекции ObservableCollection

    <ComboBox ItemsSource="{Binding Past}" DisplayMemberPath="Date" IsSynchronizedWithCurrentItem="True"/>

Используя «IsSynchronizedWithCurrentItem», он «синхронизируется» с набором меток, которые показывают данные ниже в наборе меток, таких как:

    <Label DataContext="{Binding SelectedDate}" Content="{Binding Minimum}" />

Поскольку гораздо проще выбрать дату с помощью DatePicker (например, WPF Toolkit, http://wpf.codeplex.com/), а не комбинированного списка с более чем 300 датами в нем, есть ли возможность установить что-то вроде 'IsSynchronizedWithCurrentItem') чтобы DatePicker мог контролировать «текущую дату»?

Спасибо

1 Ответ

1 голос
/ 24 декабря 2009

Я решил эту проблему, создав свойство CurrentDate в моей модели представления:

    public DateTime CurrentDate
    {
        get { return (this.collectionView.CurrentItem as PastItem).Date; }
        set 
        { 
            this.collectionView.MoveCurrentTo(Past.Where(PastItem => PastItem.Date == Convert.ToDateTime(value)).FirstOrDefault()); 
        }
    }

и затем создание двух свойств для первой и последней дат:

    public DateTime FirstDate
    {
        get { return this.Past.FirstOrDefault().Date; }
    }
    public DateTime LastDate
    {
        get { return this.Past.LastOrDefault().Date; }
    }

, а затем привязка к этим свойствам с помощью DatePicker:

    <wpf:DatePicker SelectedDate="{Binding CurrentDate}" DisplayDateStart="{Binding FirstDate, Mode=OneWay}" DisplayDateEnd="{Binding LastDate, Mode=OneWay}" />

Это означало, что DatePicker будет ограничен первой и последней датами, и можно выбрать дату, связанную с деталями.

...