我想在同一行中选中复选框时更新列表视图中的列。复选框是一行的一部分。
查看:
复选框:
<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();
}
视图模型:
public void UpdateColumnValue(int Id)
{
foreach(var a in Accounts)
{
if(a.ID == Id)
{
a.MyColumnValue = "Yes";
}
}
}
帐户列表正在更新,但列表视图未显示列中的修改值。我尝试过listview.item.refresh()刷新listview。没有工作。
请帮忙。谢谢!
答案 0 :(得分:1)
为什么不将IsChecked
的{{1}}属性绑定到视图模型的CheckBox
源属性,并处理设置bool
属性的逻辑视图模型类:
MyColumnValue
<CheckBox Tag="{Binding ID}" IsChecked="{Binding IsChecked}"/>
确保视图模型类正确实现INotifyPropertyChanged接口。