Получение значения DataPicker MVVM - PullRequest
0 голосов
/ 03 мая 2018
public DateTime TheDate
    {
        get { return _TheDate; }
        set
        {

                _TheDate= value;
                NotifyOfPropertyChange("TheDate");

        }

XAML:

<DatePicker  Text="{Binding TheDate}" Grid.Row="4" Grid.Column="1" Width="150" materialDesign:HintAssist.Hint="Put Date here"/>

Я получил 01/01/0001 в качестве значения по умолчанию. Если я пытаюсь изменить его из DatePicker, все меняется, кроме года (остается 0001). Если я попытаюсь получить это значение, я все равно получу 01/01/0001, хотя DatePicker показывает, что день и месяц изменились на что-то другое.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Свяжите SelectedValue свойство вашего DatePicker с вашим исходным свойством:

<DatePicker SelectedDate="{Binding TheDate}" ... />

... и установите значение поля _TheDate в вашей модели представления на дату по умолчанию, которую вы хотите отобразить:

private DateTime _TheDate = new DateTime(2018, 05, 05); //<-- default date
public DateTime TheDate
{
    get { return _TheDate; }
    set
    {
        _TheDate = value;
        NotifyOfPropertyChange("TheDate");
    }
}
0 голосов
/ 03 мая 2018

Прежде всего, вы должны использовать dependency property. Это делает привязку свойства к вашему DateTimePicker очень легкой.

public DateTime SelectedDateTime
{
    get { return (DateTime)GetValue(SelectedDateTimeProperty); }
    set { SetValue(SelectedDateTimeProperty, value); }
}

// Using a DependencyProperty as the backing store for SelectedDateTime. This enables animation, styling, binding, etc...
public static readonly DependencyProperty SelectedDateTimeProperty =
DependencyProperty.Register("SelectedDateTime", typeof(DateTime), typeof(YourModel), new PropertyMetadata(DateTime.Now));

Теперь, если вы посмотрите на параметры DependencyProperty.Register(), вы увидите, что есть параметр с именем PropertyMetadata (третий). Это ваше значение по умолчанию. В моем случае это DateTime.Now.

Затем вы можете привязать ваше свойство зависимости к вашему DateTimePicker, как и к любому другому свойству

<DatePicker SelectedDate="{Binding SelectedDateTime}"/>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...