Как я могу установить XAML для первого WPF RadioButton в управлении ListView, которое будет проверено по умолчанию?

Я имею контроль WPF ListView, содержащий много средств управления RadioButton с помощью привязки данных. Я хотел бы, чтобы первый RadioButton в группе был проверен по умолчанию, предпочтительно установлен в XAML, а не программно, но не сумел достигнуть этого.

Мой XAML для управления:

        <ListView ItemsSource="{Binding OptionsSortedByKey}" >
            <ListView.ItemTemplate>
                <DataTemplate DataType="{x:Type Logging:FilterOptionsRadioListViewModel}">
                    <RadioButton Content="{Binding Value}" />
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

Свойством OptionsSortedByKey является SortedList.

Я сделал это неуклюже путем установки свойства IsChecked управления RadioButton в событии Loaded:

        var button = sender as RadioButton;

        if (button != null)
        {
            if (button.Content.ToString().ToUpperInvariant() == "ALL")
            {
                button.IsChecked = true;
            }
        }

Я далеко предпочел бы делать это через привязку данных в XAML. Существует ли простой путь?

5
задан Val M 14 July 2010 в 15:34
поделиться

1 ответ

Вы можете:

<RadioButton IsChecked="{Binding RelativeSource={PreviousData}, Converter={StaticResource NullAsTrueConverter}}"/>

Где преобразователь возвращает истину , если значение равно null .

Тем не менее, подход на основе MVVM сделает это несложно. Вы просто:

<RadioButton IsChecked="{Binding IsChecked}"/>

И тогда ваша основная модель представления установит IsChecked в true для первой дочерней модели представления в коллекции.

7
ответ дан 14 December 2019 в 08:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: