选中复选框时更新 Listview 列
Update a Listview column when checkbox is checked
我想在同一行中选中复选框时更新列表视图中的列。复选框是行的一部分。
查看:
复选框:
<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() 刷新列表视图。没用。
请帮忙。谢谢!
为什么不将 CheckBox
的 IsChecked
属性 绑定到视图模型的 bool
源 属性 并处理逻辑在视图模型中设置 MyColumnValue
属性 class:
<CheckBox Tag="{Binding ID}" IsChecked="{Binding IsChecked}"/>
private bool _icChecked;
public bool IsChecked
{
get { return _icChecked; ; }
set { _icChecked; = value; NotifyPropertyChanged(); UpdateColumnValue(Convert.ToInt32(ID)); }
}
确保视图模型 class 正确实现了 INotifyPropertyChanged 接口。
我想在同一行中选中复选框时更新列表视图中的列。复选框是行的一部分。
查看:
复选框:
<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() 刷新列表视图。没用。
请帮忙。谢谢!
为什么不将 CheckBox
的 IsChecked
属性 绑定到视图模型的 bool
源 属性 并处理逻辑在视图模型中设置 MyColumnValue
属性 class:
<CheckBox Tag="{Binding ID}" IsChecked="{Binding IsChecked}"/>
private bool _icChecked;
public bool IsChecked
{
get { return _icChecked; ; }
set { _icChecked; = value; NotifyPropertyChanged(); UpdateColumnValue(Convert.ToInt32(ID)); }
}
确保视图模型 class 正确实现了 INotifyPropertyChanged 接口。