【发布时间】:2011-12-27 08:44:45
【问题描述】:
我想对 ListView 中的复选框进行两种方式的绑定。这是我的产品类:
public class Product
{
public bool IsSelected { get; set; }
public string Name { get; set; }
}
在 ViewModel 类中,我有可观察到的产品集合:
private ObservableCollection<Product> _productList;
public ObservableCollection<Product> ProductList
{
get
{
return _productList;
}
set
{
_productList = value;
}
}
public MainViewModel()
{
ProductList = new ObservableCollection<Product>
{
new Product {IsSelected = false, Name = "Not selected"},
new Product {IsSelected = true, Name = "Selected"},
new Product {IsSelected = true, Name = "Selected"}
};
}
}
最后我有了绑定我的 ProductList 的 ListView 网格:
<Grid>
<ListView Height="120" HorizontalAlignment="Left"
VerticalAlignment="Top"
SelectionMode="Multiple"
ItemsSource="{Binding ProductList}" >
<ListView.View>
<GridView>
<GridViewColumn Width="40">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="120" Header="Product Name" DisplayMemberBinding="{Binding Path=Name}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
当我调试这个应用程序时,当我选中/取消选中复选框时,它永远不会到达 setter 行。 任何想法这段代码有什么问题? 提前致谢!
【问题讨论】:
标签: c# wpf xaml data-binding wpf-controls