Как изменить свойство TreeViewItem из элемента в его заголовке? - PullRequest
1 голос
/ 21 апреля 2010

У меня есть представление дерева, где свойство заголовка содержит другие элементы, такие как TextBlock. Я хочу, если TextBlock Text = "Пусто", TreeViewItem не быть фокусируемым. Здесь я устанавливаю свойство TextBox Focasable, но содержащий TreeViewItem является фокусируемым.

Я хочу, чтобы TreeViewItem, содержащий TextBlock с Text = "Empty", не был фокусируемым. Спасибо

Вот моя попытка.

    <Grid>
    <TreeView>
        <TreeViewItem>
            <TreeViewItem.Header>
                <TextBlock Text="John">
                    <TextBlock.Style>
                        <Style TargetType="{x:Type TextBlock}">
                        <Style.Triggers>
                                    <Trigger Property="Text" Value="Empty">
                                    <Setter Property="Background" Value="Red" />
                                        <Setter Property="Focusable" Value="False"></Setter>
                                    </Trigger>
                        </Style.Triggers>
                    </Style>
                    </TextBlock.Style>
                </TextBlock>
            </TreeViewItem.Header>
        </TreeViewItem>
        <TreeViewItem>
            <TreeViewItem.Header>
                <TextBlock Text="Empty">
                    <TextBlock.Style>
                        <Style TargetType="{x:Type TextBlock}">
                        <Style.Triggers>
                           <Trigger Property="Text" Value="Empty">
                                    <Setter Property="Background" Value="Red" />
                                        <Setter Property="Focusable" Value="False"></Setter>
                                    </Trigger>
                        </Style.Triggers>
                    </Style>
                    </TextBlock.Style>
                </TextBlock>
            </TreeViewItem.Header>
        </TreeViewItem>
    </TreeView>
</Grid>

1 Ответ

1 голос
/ 22 апреля 2010

Вам нужно установить свойство Focusable для TreeViewItem, а не для TextBlock.Вот почему ваш предмет всегда сфокусирован.Я предлагаю вам связать свойство Text (из TextBlock) и свойство Focusable (из TreeViewItem) с другим свойством в классе ViewModel и использовать конвертер для преобразования строки в bool для вашего свойства Focusable.

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