C# 如何在列表框上使用WPF验证规则来启用';OK';按钮
我是WPF的新手,有个问题。我只想在选中列表框的en元素时启用按钮,否则必须禁用它。我尝试过使用简单的验证规则,但它不起作用。谁能给我一个提示吗?Ty如果ListBox的SelectedItem属性返回空引用,则不使用ValidationRule启用按钮,但可以使用带有触发器的按钮样式,该触发器绑定到ListBox的SelectedItem属性,并将按钮的IsEnabled属性设置为false,例如:C# 如何在列表框上使用WPF验证规则来启用';OK';按钮,c#,wpf,validation,listbox,C#,Wpf,Validation,Listbox,我是WPF的新手,有个问题。我只想在选中列表框的en元素时启用按钮,否则必须禁用它。我尝试过使用简单的验证规则,但它不起作用。谁能给我一个提示吗?Ty如果ListBox的SelectedItem属性返回空引用,则不使用ValidationRule启用按钮,但可以使用带有触发器的按钮样式,该触发器绑定到ListBox的SelectedItem属性,并将按钮的IsEnabled属性设置为false,例如: <ListBox x:Name="lb"> <ListBoxItem
<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>
1.
2.
3.
好的,这个很好用。但我必须在满足两个条件时启用该按钮(文本框不为空,列表框中的一项已选中)。我该怎么做 您可以添加另一个触发器:
<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>
1.
2.
3.
如果对绑定到按钮的命令使用MVVM和ICommand
界面,则可以定义一个CanExecute
委托,用于检查SelectedItem!=好的,这很管用。但我必须在满足两个条件时启用该按钮(文本框不为空,列表框中的一项已选中)。我怎么做?你可以再加一个触发器。请参考我编辑的答案。还请记住,一旦您的原始问题得到解决,请接受答案,如果您有其他问题,请提出新问题。