在WP8中使用DataTemplate.Triggers

时间:2013-09-19 03:57:46

标签: windows-phone-8 datatrigger

我在WP应用程序中使用ItemsControl来显示对象列表(将可观察集合绑定到此列表)。 在WPF中,如果更新了任何对象属性,我们可以更新UI,但是当谈到WP8时,我该怎么做呢?下面是WPF中使用的语法,但在WP8中它显示了未找到的触发器

       <ItemsControl> 
            <ItemsControl.ItemTemplate> 
                <DataTemplate> 
                        <DataTemplate.Triggers> 

                </DataTemplate.Triggers> 
                </DataTemplate> 
            </ItemsControl.ItemTemplate> 
        </ItemsControl>

如何在WP8中更新UI?我打算做的是基于Object的属性设置Items中按钮的可见性。

2 个答案:

答案 0 :(得分:0)

而不是使用触发器。如何使用转换器(实现IValueConverter)来根据属性设置可见性。所以你的xaml看起来像:

<button visibility="{binding YourObjectProperty, Converter={staticresource YourVisibilityConvert}}  ... />

然后每当为属性触发propertychanged事件时,ui将根据转换器返回的值更新可见性。

答案 1 :(得分:0)

您可以尝试使用Expression blend

设置行为
xmlns:ec="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions" x:Class="XXX_XXXX"

<Image Source="/Assets/Images/Tick.png"
                   Stretch="None"
                   HorizontalAlignment="Stretch" 
                   VerticalAlignment="Top">
                <interactivity:Interaction.Triggers>
                    <ec:DataTrigger Binding="{Binding Change}" Value="False">
                        <ec:ChangePropertyAction PropertyName="Source">
                            <ec:ChangePropertyAction.Value>

                                <BitmapImage UriSource="/Assets/Images/Close.png"/>
                            </ec:ChangePropertyAction.Value>
                        </ec:ChangePropertyAction>
                    </ec:DataTrigger>
                </interactivity:Interaction.Triggers>
            </Image>

Msdn