我是WPF的新手,我遇到了问题。我想只在选择了列表框的元素时才启用按钮,否则必须禁用它。我尝试过简单的验证规则,但它没有用。任何人都可以给我一个提示吗? TY
答案 0 :(得分:1)
您没有使用ValidationRule来启用Button但您可以使用带有触发器的Button样式,该触发器绑定到ListBox的SelectedItem属性,并且如果SelectedItem属性为,则将Button的IsEnabled属性设置为false。 ListBox返回一个空引用,例如:
<ListBox x:Name="lb">
<ListBoxItem>1</ListBoxItem>
<ListBoxItem>2</ListBoxItem>
<ListBoxItem>3</ListBoxItem>
</ListBox>
<Button Content="Button">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedItem, ElementName=lb}" Value="{x:Null}">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
好的,这很好用。但是我在满足2个条件时启用了按钮(文本框不为空且选中了列表框的项目)。我怎么能这样做?
您可以添加另一个触发器:
<ListBox x:Name="lb">
<ListBoxItem>1</ListBoxItem>
<ListBoxItem>2</ListBoxItem>
<ListBoxItem>3</ListBoxItem>
</ListBox>
<TextBox x:Name="txt" />
<Button Content="Button">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedItem, ElementName=lb}" Value="{x:Null}">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
<DataTrigger Binding="{Binding Text.Length, ElementName=txt}" Value="0">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>