我有一个带有2个字段的XamDataGrid。在第二个字段中,我有切换按钮。单击ToggleButton
时,将正确设置该值。但是,用户在任何时候都只能检查所有记录中的一个ToggleButton
。默认属性的set逻辑中的数据工作正常。但是我需要为数据源中的其他项目设置默认值。
使用RadioButton
代替ToggleButton
是理想的解决方案。但是可能没有记录是默认记录。因此,我希望有一种解决方案,当其中一个默认字段变为true时,将其他默认字段设置为false。
字段的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));
}
}
}
答案 0 :(得分:0)
您可以使用同一事件处理程序将“切换按钮”事件选中和取消选中。 然后只需放置一个if条件-(if toggle_btn.isChecked)'checked code'else'unchecked code'