我在WP应用程序中使用ItemsControl来显示对象列表(将可观察集合绑定到此列表)。 在WPF中,如果更新了任何对象属性,我们可以更新UI,但是当谈到WP8时,我该怎么做呢?下面是WPF中使用的语法,但在WP8中它显示了未找到的触发器
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<DataTemplate.Triggers>
</DataTemplate.Triggers>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
如何在WP8中更新UI?我打算做的是基于Object的属性设置Items中按钮的可见性。
答案 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>