同じ行でチェックボックスをオンにすると、リストビュー内の列を更新します。チェックボックスは行の一部です。チェックボックスがオンのときにリストビューの列を更新します。
ビュー:
チェックボックス:更新されるために必要なカラム内
<CheckBox Tag="{Binding ID}" Checked="chbAccount_checked" Unchecked="chbAccount_Unchecked"/>
テキストブロック:背後に
<TextBlock Text="{Binding MyColumnValue }" />
コード:
private void chbAccount_checked(object sender, RoutedEventArgs e)
{
CheckBox chb = sender as CheckBox;
int Id= Convert.ToInt16(chb.Tag);
ViewModel.UpdateColumnValue(Id);
myListView.ItemsSource = ViewModel.Accounts;
this.myListView.UpdateLayout();
}
のViewModel:
public void UpdateColumnValue(int Id)
{
foreach(var a in Accounts)
{
if(a.ID == Id)
{
a.MyColumnValue = "Yes";
}
}
}
アカウントリストは更新されていますが、リストビューには変更された値が列に表示されません。 listview.item.refresh()でリストビューをリフレッシュしようとしました。うまくいきませんでした。
助けてください。ありがとうございました!
既にバインディングを使用しています。バインドされたプロパティを更新しないのはなぜですか? INotifyPropertyChangedを実装する場合は、MyColumnValueプロパティを更新するだけで済みます。これがMVVMパターンの利点の1つです。 –
私はINotifyPropertyChangedに慣れていませんでした。いくつかのチュートリアルを行った。私は今これを処理できると思う。どうもありがとうございました。 :) – sandaru
"はい"それは働いています:) :) – sandaru