Как я могу проверить флажки с триггером? - PullRequest
1 голос
/ 03 сентября 2011

Мои узлы TreeView имеют флажок. Если пользователь установит один флажок, все остальные флажки из подузла корневого узла должны быть автоматически отключены.

Вот мое дерево:

<TreeView ItemsSource="{Binding Items}">
    <TreeView.ItemContainerStyle>
        <Style TargetType="{x:Type TreeViewItem}" >
            <Style.Triggers>
                <Trigger Property="HasItems" Value="true">
                    <Setter Property="Focusable" Value="False"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </TreeView.ItemContainerStyle>
        <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding SubNodes}">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="20"/>
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>
                <CheckBox Grid.Column="0"/>
                <TextBlock Text="{Binding Text}" Grid.Column="1"/>
            </Grid>
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
</TreeView>

Ответы [ 2 ]

0 голосов
/ 05 сентября 2011

Модификация ViewModel - это путь:

Каждый элемент в коллекции SubNodes должен реализовывать новое свойство bool, например «Enabled», и другое bool «Checked».Затем привяжите «Checked» к свойству «IsChecked» флажка, а «Enabled» - к «IsEnabled» и создайте необходимую логику в наборе доступа «Checked», чтобы установить в «false» свойство «Enabled» в каждом другом элементеколлекция.

0 голосов
/ 05 сентября 2011

Вы можете получить из RadioBox и реализовать эту функцию самостоятельно или ваша модель представления регистрирует изменения отмеченного свойства и сбрасывает все остальные проверенные элементы списка.

...