gpt4 book ai didi

c# - 复选框绑定(bind) - 什么是更好的解决方案?

转载 作者:太空狗 更新时间:2023-10-29 21:24:14 25 4
gpt4 key购买 nike

我的 wpf 表单中有 20 多个复选框。我需要将所有这些值的 IsChecked 值存储在某个对象中。

我知道两种方法。

1) 使用 here 等依赖属性将所有复选框绑定(bind)到对象中的相应属性

2) 处理所有的Clicked事件

哪种解决方案更好?有没有更好的解决方案在代码隐藏中占用更少的空间?

最佳答案

绝对使用绑定(bind)

如果您的复选框不相关并且到处都是,您将需要 20 个不同的依赖属性绑定(bind)到您的 DataContext 或 ViewModel

如果您的 CheckBox 都在一起,例如一个接一个地列出或在一个网格中,您可以将它们放在一个集合中并为它们绑定(bind)一个 ItemsControl

<ItemsControl ItemsSource="{Binding Options}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Description}"
IsChecked="{Binding IsChecked}" />
</DataTemplate>
</ItemsControl>
</ItemsControl>

您的 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;
}
}

你的 Option 类就是

public class Option
{
public string Description { get; set; }
public bool IsChecked { get; set; }
}

关于c# - 复选框绑定(bind) - 什么是更好的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7517076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com