我有两个TextBoxes
,两个ListBoxes
,一个Cancel
按钮和一个OK
按钮。
简化问题,我想将第二个Borderbrush
的{{1}}的颜色与ListBox
按钮的IsEnabled
属性相关联。
替代方案是将颜色更改为OK
背景而不是ListBoxItem
边框本身的链接。
是否可能(可能通过Listbox
或其他内容)?如果是这样,你能告诉我的方式吗?
窗口的XAML如下:
Triggers
答案 0 :(得分:1)
这是一个基于按钮的IsEnabled属性更改列表视图的边框画笔的小示例
<StackPanel>
<ListBox Height="100">
<ListBox.Style>
<Style TargetType="ListBox">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=okButton, Path=IsEnabled}" Value="false">
<Setter Property="BorderBrush" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=okButton, Path=IsEnabled}" Value="true">
<Setter Property="BorderBrush" Value="Blue"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>
</ListBox>
<Button IsEnabled="True" Name="okButton">true</Button>
</StackPanel>
但我会在命令上设置按钮的可用性,而不是在XAML中,我也会将ListView的颜色绑定到ViewModel中的IsValid属性。