1
我在ResourceDictionary中将按钮样式设置为DataTemplate。这里有一小部分:DataTemplate检查绑定是否存在
<Style TargetType="{x:Type Button}">
<Setter Property="Focusable" Value="False"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border">
...
</Border>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding IsSelected}" Value="True">
<Setter Property="Background" TargetName="border" Value="Red" />
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
在这个模板中有一个与属性IsSelected的绑定。这种特性在那里是一种情况,在其他情况下则不是。
如果绑定路径存在,是否可以检查Xaml,然后在其他情况下使用它忘记它? 现在我在调试输出BindingExpression,我想消除这一点。
我如何访问TargetName边框?哪一种是另一种风格?这可能吗? – San 2012-03-01 12:02:24
你没有。相反,您需要更新您的控件模板绑定到的控件的属性。这使得数据和数据的可视化之间保持清晰的分离。在这种情况下,你可能会让你的样式触发器设置'Button'的'Background'属性。然后按钮的控件模板中的'border'元素将使用'TemplateBinding'到按钮的'Background'属性。 – 2012-03-01 15:49:10