Обновление состояния проверки кнопок переключения при переключении одной из них - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть XamDataGrid с 2 полями.Во втором поле у ​​меня есть кнопки переключения.При нажатии ToggleButton значение устанавливается правильно.Но в любое время пользователь должен иметь возможность проверить только один ToggleButton среди всех записей.Данные в установленной логике для свойства Default работают нормально.Но мне нужно установить значения Default для других элементов в DataSource.

Использование RadioButton вместо ToggleButton было бы идеальным решением.Но возможно, что ни одна из записей не является стандартной.Поэтому я хочу, чтобы решение сделало другие поля по умолчанию ложными, когда одно из них станет истинным.

XAML для поля:

<igWPF:Field Name="Default" Width="84">
    <igWPF:Field.Settings>
        <igWPF:FieldSettings CellValuePresenterStyle="{StaticResource ButtonDefault}" />
    </igWPF:Field.Settings>
</igWPF:Field>

XAML для CellValuePresenterStyle:

<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));
        }
    }
}

1 Ответ

0 голосов
/ 26 декабря 2018

Вы можете включить или отключить событие Toggle Button с помощью того же обработчика событий.Затем просто поставьте условие if - (if toggle_btn.isChecked) 'проверенный код', в противном случае 'непроверенный код'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...