WPF: настроить табличку с данными, используя свойство привязки - PullRequest
0 голосов
/ 21 мая 2009

Я очень новичок в WPF. У меня есть ListBox, где я хочу установить шаблон для элемента (я назвал его Person). TextBlock должен быть использован. Человек должен к публичным свойствам: «Передний план» и «IsOnline». Если «IsOnline» имеет значение true, я бы использовал свойство «Foreground» этого человека, иначе «Grey». Это все. Мой первый шаблон:

<DataTemplate x:Key="UnselectedPersonTemplate" DataType="{x:Type o:Person}">
    <TextBlock Text="{Binding Path=Name}" Foreground="{Binding Path=Foreground}" Margin="1">
        <DataTemplate.Triggers>
            <DataTrigger Binding="{Binding Path=IsOnline}" Value="False">
                <Setter Property="TextBlock.Foreground" Value="Gray" />
            </DataTrigger>
        </DataTemplate.Triggers>
</DataTemplate>

Конечно, это не работает. Там нет исключений, но и не ожидаемый результат. Затем я попытался использовать Trigger для TextBlock, но будет исключение: я не могу использовать для этого DataTriggers (только EventTriggers).

Спасибо за любой совет! :)

1 Ответ

4 голосов
/ 21 мая 2009

Дайте вашему TextBlock имя и установите TargetName свойство установщика на это имя.

<DataTemplate x:Key="UnselectedPersonTemplate" DataType="{x:Type o:Person}">
    <TextBlock x:Name="tb" Text="{Binding Path=Name}" 
          Foreground="{Binding Path=Foreground}" Margin="1" />
    <DataTemplate.Triggers>
       <DataTrigger Binding="{Binding Path=IsOnline}" Value="False">
          <Setter TargetName="tb" Property="Foreground" Value="Gray" />
       </DataTrigger>
    </DataTemplate.Triggers>
</DataTemplate>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...