c# - 在 DataBinding 中使用控件属性
问题描述
我有许多用于更改选项的单选按钮,通过绑定到带有命令参数的命令,如下所示:
<RadioButton
Content="Option1"
Command="{Binding ChangeOption}
CommandParameter="Option1" />
更改选项的代码是视图模型非常简单:
public property SelectedOption { get; set; }
public void ChangeOption(string option)
{
SelectedOption = option;
}
这有点简化,但它几乎描述了这个概念。SelectedOption
我缺少的是,根据属性决定是否选中单选按钮。我想将此属性Content
与CommandParameter
. RadioButton
这应该在触发器中完成,然后可以更改IsSelected
属性。
问题是,我无法弄清楚如何访问数据触发器中的Content
或CommandParamater
。我被困在这样的事情上:
<Style.Triggers>
<DataTrigger Binding={Binding SelectedOption} Value="?????">
<Setter Property="IsChecked" Value="True" />
</DataTrigger>
</Style.Triggers>
我在Value
数据触发器的参数中放入了什么,以将其与所选选项进行比较?
解决方案
这种方法可能会令您头疼不已。
我建议为这些单选按钮创建一个新类:
public class OptionSelection
{
public bool IsSelected {get; set;}
public string Option {get; set;}
}
然后,您可以创建这些项目的 ObservableCollection 或列表,并使用 ItemsControl、绑定到 Option(使用 Label 或 TextBlock)和 IsSelected(使用 RadioButton)来显示它们。
在此对象中实现也很重要,INotifyPropertyChanged
以便 XAML 绑定相应地更新。
推荐阅读
- sql-server - SQL Server - 多个客户的同一张表
- android - Java,Android - 当设备设置为深色主题时,应用程序在首次启动应用程序时以深色模式打开
- r - 如何通过在 R 中重复其值来扩展向量以匹配另一个向量?
- javascript - 使用 webpack 响应延迟加载模块
- ruby-on-rails - 使用 react 和 json 将图像上传到 rails
- python - 如何在 `setup.py` 中设置 bin 脚本入口点?
- typo3 - TYPO3:在插件 tx_seo 中修改站点地图的根页面
- sql - C# 是否有一个匹配 SQL 对象类型的枚举?
- php - Laravel PDF - 从多种语言渲染文本
- android - 向下滑动视图在第一次后不再显示