0

MVVMパターンでAvalonDatePickerコントロールを使用しています。このコントロールのCurrentlySelectedDateをViewModelのプロパティに次のようにバインドしています。

<my:DatePicker x:Name="dtpBirthDate" Cursor="Hand" DatesSelectionMode="Single"   OverridesDefaultStyle="False"  CurrentlySelectedDate="{Binding Path=BirthDate}" />

ここで、BirthDateは、ViewModelクラスのDateTime型のプロパティです。

public DateTime BirthDate
    {
        get { return _patient.BirthDate; }
        set
        {
            if (value == _patient.BirthDate)
                return;

            _patient.BirthDate = value;

            base.OnPropertyChanged("BirthDate");
        }
    }

それでも、ユーザーインターフェイスから値を変更しても、このプロパティの変更は発生しません。誰かが私が間違ったことを説明できますか?.NET3.0に制限されています。

4

2 に答える 2

1

解決策は、次のようにUpdateSourceTrigger = PropertyChanged、Mode=TwoWayを追加することでした。

<my:DatePicker x:Name="dtpBirthDate" Cursor="Hand" DatesSelectionMode="Single"
                   OverridesDefaultStyle="False"
                   CurrentlySelectedDate="{Binding Path=BirthDate,    ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
                   Validation.ErrorTemplate="{x:Null}"></my:DatePicker>
于 2012-01-06T14:19:13.660 に答える
0

CurrentSelectedDateではなくBirthDateをSelectedDateプロパティにバインドしてみてください。

よろしく

于 2011-12-14T15:43:18.963 に答える