c# - 当其中一个被切换时更新切换按钮检查状态
问题描述
我有一个带有 2 个字段的 XamDataGrid。在第二个字段中,我有切换按钮。单击时ToggleButton
,值会正确设置。但在任何时候,用户都应该能够检查ToggleButton
所有记录中的一个。默认属性的设置逻辑中的数据工作正常。但我需要为 DataSource 中的其他项目设置默认值。
使用 aRadioButton
而不是ToggleButton
将是理想的解决方案。但有可能没有任何记录是默认的。所以我想要一个解决方案,当其中一个变为真时,使其他默认字段为假。
字段的 XAML:
<igWPF:Field Name="Default" Width="84">
<igWPF:Field.Settings>
<igWPF:FieldSettings CellValuePresenterStyle="{StaticResource ButtonDefault}" />
</igWPF:Field.Settings>
</igWPF:Field>
CellValuePresenterStyle 的 XAML:
<Style x:Key="ButtonDefault" TargetType="{x:Type igWPF:CellValuePresenter}" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type igWPF:CellValuePresenter}">
<ToggleButton Content="Default"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Width="80"
Height="36"
IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
数据源:
public class LanguageSettingItem : INotifyPropertyChanged
{
private string name;
private bool isDefault;
public event PropertyChangedEventHandler PropertyChanged;
public string Name
{
get { return this.name; }
set { this.name = value; PropChanged("Name"); }
}
public bool Default
{
get { return this.isDefault; }
set { this.isDefault= value; PropChanged("Default"); }
}
public void PropChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
解决方案
您可以使用相同的事件处理程序选中和取消选中切换按钮事件。然后只需输入一个 if 条件 - (if toggle_btn.isChecked)'checked code' else 'unchecked code'
推荐阅读
- reactjs - 如何为 react 和 django 应用程序编写 bitbucket-pipelines.yml 以部署在 heroku 上
- python - Python 字符串到文件
- python - 如何在 Discord.py 中按 ID 踢用户
- python - scapy 嗅探 ZigBee 流量,不检测 ZigBee 层
- vba - 从模板创建后如何使新文档可见?
- java - 如何修改我的信用卡验证程序以仅在我最后一个检查卡类型的函数中检查有效数字?
- sql - SQL 语法错误:“缺少右括号”
- ruby - 如何防止硒无头中的虚假用户代理检测?
- javascript - 如何获取层次结构中所有节点的路径
- amazon-web-services - AWS EC2 CLI 如何获取列表 EC2 实例 - 限制输出