はのは、私はアイテムのListViewコントロールと選択した項目のプロパティ(テキスト)を編集するテキストボックスでMVVMアプリケーションがあるとしましょう。自動INotifyPropertyChangedのは、ビューの変更後
<TextBox Text="{Binding SelectedItem.Text}"/>
<ListBox ItemsSource="{Binding Items}" DisplayMemberPath="Text" SelectedItem="{Binding SelectedItem}"
私のViewModelにはObservableCollection Itemsがあります。各アイテムは、INotifyPropertyChangedを実装し、requieredプロパティを持ちます。私は私のTextBoxのテキストを変更した場合、私は、通知なしで唯一のプロパティを持っているので、リストが更新されていません。
public class Item : INotifyPropertyChanged
{
public string Text { get; set; }
}
私の質問は:使用せずに、私のリストのテキスト・プロパティを更新する方法はありますまたは異なるアプローチ - これが私のTextBoxのテキストを変更した後、私のビューから直接にPropertyChangedを発射する方法はあり
private string _Text;
public string Text
{
...
set
{
_Text = value;
PropertyChanged("Text");
}
}
を?:ようにPropertyChanged?
ありがとうございました!
どこ 'TextBox'はありますか?私は 'TextBlock'だけを見ます。ビューモデルから 'PropertyChanged'イベントを呼び出すことができないのはなぜですか? – dkozl
バックあなたは左下今削除されたコメントに移動し、あなたは左のリンクをたどります。その答えが言っていることを読んでください。次に 'Text'プロパティを使って' Item'クラスと比較してください。答えはあなたを顔で見つめている。 – slugster
@ dkozl:TextBlockをTextBoxに変更しました...私の間違いです。 (:http://stackoverflow.com/questions/7767218/why-does-the-binding-update-without-implementing-inotifypropertychangedここを見て)INotifyPropertyChangedのを実装しなければ、任意の通知なしで働いていました。今(これは最低限の例です) – Fruchtzwerg