私はDependencyObjectを間違って使用している可能性があります。テキストボックスの2つのレイヤーバインディングが書き込まれていない
プロパティFirstNameとLastNameを持つPersonというDependencyObjectを実装する汎用クラスがあります。
次に、私のViewModelクラスにdatacontextを設定したxamlコントロールがあります。 ViewModelクラスの中に私はPersonを取得/設定するUserNameというプロパティがあります。テキストボックスはUserName.FirstNameプロパティにバインドされています。テキストボックスに正しくデータを入力できますが、文字を入力してタブアウトするとセットを呼び出すことができません。私は問題が2つのレベルのプロパティバインディングだと思う。設計上の理由から、2つのレベルのプロパティを使用してアクセスする必要があります。助言がありますか?ここで
は私のXAMLである:ここでは
<TextBox Width="100" Margin="10,0,0,0" Text="{Binding Path=UserName.FirstName, Mode=TwoWay}" />
は、ビューモデルクラスの私の財産です:
public Person UserName
{
get
{
return person;
}
set
{
person = value;
}
}
私もこの方法もそれを試してみた:
public Person UserName
{
get
{
return person;
}
set
{
person.FirstName = value.FirstName;
}
}
は単に 'User'は、 – sll
があなたのコードでテストを行なったし、それは私の最初の時間のために働いて少し混乱しています。..プロパティへのコールバックを追加したので、値が変更されているのが見えました。 – NestorArturo
本当ですか?プロパティにコールバックを追加するとどういう意味ですか? – dave