Связывание с датой - PullRequest
       4

Связывание с датой

1 голос
/ 09 июня 2010

Как мне добиться чего-то подобного:

<ListView Name="OverviewTitlesListView" ItemsSource="{Binding OverviewTitlesCollection}">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Index" Width="60" DisplayMemberBinding="{Binding TitleIndex}"/>
                        <GridViewColumn Header="Start Time" Width="100" DisplayMemberBinding="{Binding StartTime}"/>
                        <GridViewColumn Header="End Time" Width="100" DisplayMemberBinding="{Binding EndTime}"/>
                        <GridViewColumn Header="Title Text" Width="550" DisplayMemberBinding="{Binding Text}"/>
                        <GridViewColumn Header="Approved" Width="80">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Name="Test"/>
                                    <DataTemplate.Triggers>
                                        <Trigger Property="{Binding IsApproved}" Value="true">
                                            <Setter TargetName="Test" Property="Text" Value="Approved"/>
                                        </Trigger>
                                        <Trigger Property="{Binding IsApproved}" Value="false">
                                            <Setter TargetName="Test" Property="Text" Value="Not Approved"/>
                                        </Trigger>
                                    </DataTemplate.Triggers>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                    </GridView>
                </ListView.View>
            </ListView>

Когда свойство IsApproved изменяется для моего объекта в OverviewTitlesCollection, я хочу управлять текстом TextBlock. Как я могу контролировать это с помощью триггеров в моей таблице данных?

Ответы [ 2 ]

2 голосов
/ 09 июня 2010

Измените свой DataTemplate следующим образом:

<DataTemplate>
    <TextBlock x:Name="Test" Text="Approved"/>
    <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding IsApproved}" Value="False">
            <Setter TargetName="Test" Property="Text" Value="Not Approved"/>
        </DataTrigger>
    </DataTemplate.Triggers>
</DataTemplate>

Теперь он использует DataTrigger для проверки привязки, а не Trigger, который поддерживает только отдельные свойства объектов, которые являются шаблонными, как элементы управления.Я также упростил его, чтобы использовать значение по умолчанию и один триггер для переключения назад и вперед.Когда триггер становится неактивным, он переключается обратно в исходное состояние (Text = "Approved").

0 голосов
/ 09 июня 2010

Пока ваше свойство IsApproved вызывает INotifyPropertyChanged, ваш DataTrigger будет работать.

И используйте <DataTrigger Binding="{Binding IsApproved}". .. вместо Trigger

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