Ond*_*cek 6 c# data-binding wpf checkbox events
我的wpf格式中有20多个复选框.我需要IsChecked在某些对象中存储所有这些值.
我知道两种方式.
1)使用依赖属性将所有复选框绑定到对象中的相应属性,如此处所示
2)处理Clicked所有这些事件
哪种解决方案更好?是否有更好的解决方案在代码隐藏中占用更少的空间?
绝对使用 Binding
如果您的复选框不相关并且遍布各处,则您需要在 DataContext 或 ViewModel 中绑定 20 个不同的依赖属性
如果您的复选框都在一起,例如一个接一个地列出或在网格中,您可以将它们放入一个集合中并将 an 绑定ItemsControl到它们
<ItemsControl ItemsSource="{Binding Options}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Description}"
IsChecked="{Binding IsChecked}" />
</DataTemplate>
</ItemsControl>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
您的 ViewModel 或 DataContext 将包含如下内容:
private List<Option> options;
private List<Option> Options
{
get
{
if (options== null)
{
options = new List<Option>();
// Load Options - For example:
options.Add(new Option { Description = "Option A", IsChecked = false });
options.Add(new Option { Description = "Option B" });
options.Add(new Option { Description = "Option C", IsChecked = true});
}
return options;
}
}
Run Code Online (Sandbox Code Playgroud)
你的Option课程就是
public class Option
{
public string Description { get; set; }
public bool IsChecked { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3763 次 |
| 最近记录: |