我的内部有两个ComboBox
控件DataGrid
,我想根据另一个控件的选择来设置Enable
一个控件的状态ComboBox
。
例子:
我有一个ComboBox
名为“Item”和另一个名为“SerialNumber”。当我从相应的下拉列表中选择任何项目时,它会相应地更改 SerialNumber ComboBox 集合。
我想要的是当我选择一个项目时,如果没有根据所选项目的序列号,我想禁用 "序列号" ComboBox
。
我怎样才能做到这一点?
我的内部有两个ComboBox
控件DataGrid
,我想根据另一个控件的选择来设置Enable
一个控件的状态ComboBox
。
例子:
我有一个ComboBox
名为“Item”和另一个名为“SerialNumber”。当我从相应的下拉列表中选择任何项目时,它会相应地更改 SerialNumber ComboBox 集合。
我想要的是当我选择一个项目时,如果没有根据所选项目的序列号,我想禁用 "序列号" ComboBox
。
我怎样才能做到这一点?
如果组合框为空,您想禁用它。我对吗?为此,您可以创建一个转换器
这是你的组合框
<ComboBox [...]
Visibility="{Binding RelativeSource={RelativeSource Self}, Path=ItemsSource, Converter={StaticResource HiddenWithNoElementConverter}}" />
这是您能够使用该资源的资源
<UserControl.Resources>
<local:HiddenWithNoElementConverter x:Key="HiddenWithNoElementConverter"/>
</UserControl.Resources>
这是你的转换器类
class HiddenWithNoElementConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return Visibility.Collapsed;
if((value as IEnumerable<string>).Count() == 0)
{
return Visibility.Collapsed;
}
return Visibility.Visible;
}...