【发布时间】:2011-09-16 13:21:31
【问题描述】:
我想做以下类似的事情,但它不起作用。我想使用数据触发器将整数(或任何类型)值设置为我在数据模板中定义的按钮的标记属性。然后在按钮的图像样式内部,当相应的值设置为按钮的标记属性时触发触发器。但它似乎并没有以这种方式工作。如果我设置了 x:Null 值,我可以触发触发器,这意味着逻辑正常。但是设置像 0 或 1 这样的值不会触发触发器。有什么解决办法吗?
<DataTemplate x:Key="SomeDataTemplateofSomeType">
<Button x:Name="ButtonVisible">
<Button.Template>
<ControlTemplate TargetType="Button">
<Image x:Name="FxImage">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Style.Triggers>
<DataTrigger Binding="{Binding Tag, RelativeSource={RelativeSource TemplatedParent},UpdateSourceTrigger=PropertyChanged}" Value="0">
<Setter Property="Source" Value="/Resources/controls/images/fxiconsnone.png" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</ControlTemplate>
</Button.Template>
</Button>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsVisible, Value="True">
<Setter Property="Tag" TargetName="ButtonVisible" Value="1" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=IsVisible, Value="False">
<Setter Property="Tag" TargetName="ButtonVisible" Value="0" />
</DataTrigger>
</DataTemplate.Triggers>
</Datatemplate>
【问题讨论】:
标签: wpf xaml datatemplate datatrigger setter