C# WPF获取复选框内容
我正在使用数据模板设置组合框中复选框的值,如下所示:C# WPF获取复选框内容,c#,wpf,checkbox,C#,Wpf,Checkbox,我正在使用数据模板设置组合框中复选框的值,如下所示: <ComboBox Margin="118,117,163,164" ItemsSource="{Binding collection}"> <ComboBox.ItemTemplate> <DataTemplate> <CheckBox Content="{Binding Name}"/> <
<ComboBox Margin="118,117,163,164" ItemsSource="{Binding collection}">
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Name}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
这是应该的。我的问题是,当用户选中复选框时,我需要能够获取存储在复选框中的内容值。这可能吗
谢谢。您需要将复选框的IsChecked属性绑定到每个项目的支持对象上的另一个属性。i、 e.具有名称的类型应公开一个布尔属性IsSelected 数据绑定将适当地更新IsSelected属性,这将便于您在代码中访问。e、 g.您可以在列表上循环并过滤所有ISSELECT=false的项目 代码示例 XAML
显示选定的
选定项目
代码隐藏
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
Items = new List<ItemVM>
{
new ItemVM {IsSelected = false, Name = "Firefox"},
new ItemVM {IsSelected = false, Name = "Chrome"},
new ItemVM {IsSelected = false, Name = "IE"}
};
}
public IEnumerable<ItemVM> Items { get; set; }
private IEnumerable<ItemVM> _selectedItems;
public IEnumerable<ItemVM> SelectedItems
{
get { return _selectedItems; }
set
{
_selectedItems = value;
if (PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs("SelectedItems"));
}
}
private void EvaluateSelectedItems(object sender, RoutedEventArgs e)
{
SelectedItems = Items.Where(item => item.IsSelected);
}
public主窗口()
{
初始化组件();
this.DataContext=this;
项目=新列表
{
new ItemVM{IsSelected=false,Name=“Firefox”},
新项目vm{IsSelected=false,Name=“Chrome”},
新项目vm{IsSelected=false,Name=“IE”}
};
}
公共IEnumerable项{get;set;}
私有IEnumerable _selectedItems;
公共IEnumerable SelectedItems
{
获取{return\u selectedItems;}
设置
{
_selectedItems=值;
if(PropertyChanged!=null)
this.PropertyChanged(这是新的PropertyChangedEventArgs(“SelectedItems”);
}
}
private void EvaluateSelectedItems(对象发送方,RoutedEventTargets e)
{
SelectedItems=Items.Where(item=>item.IsSelected);
}
get the content value storage in the checkbox是什么意思?我假设您需要用户选中/选择的所有名称。复选框的文本值存储为内容。@Gishu,是的,这是正确的。谢谢。不允许我在Checked属性上使用绑定,因为它说它需要一个事件。属性名称已被选中,选中时的事件已被选中。@Darren-是的,只是掩盖了这一点。。要绑定的属性已选中复选框上的布尔属性。更新..然后如何使用此选项从复选框中获取内容文本?再次感谢。@Gishu,非常感谢。这很有效。是否有一种不必使用按钮即可计算选定对象的方法?ObservableCollection暴露的唯一事件不适合它。再次感谢。
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
Items = new List<ItemVM>
{
new ItemVM {IsSelected = false, Name = "Firefox"},
new ItemVM {IsSelected = false, Name = "Chrome"},
new ItemVM {IsSelected = false, Name = "IE"}
};
}
public IEnumerable<ItemVM> Items { get; set; }
private IEnumerable<ItemVM> _selectedItems;
public IEnumerable<ItemVM> SelectedItems
{
get { return _selectedItems; }
set
{
_selectedItems = value;
if (PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs("SelectedItems"));
}
}
private void EvaluateSelectedItems(object sender, RoutedEventArgs e)
{
SelectedItems = Items.Where(item => item.IsSelected);
}