【发布时间】:2017-09-28 20:07:30
【问题描述】:
我有一个 ModuleType,它有两个继承的 ModuleType:PayModule 和 FreeModule。
我也有一个带有这个 ItemSource 的 TreeView:
<TreeView ItemsSource="{Binding ListOfModules}">
在我的 DataTemplates 中有几个 Expander。仅当 TreeViewItem 具有 DataType PayModule 时,其中之一才可见
<Expander Header="{Binding PayModuleItem.Name}"
Visibility="{Binding PayModuleItem, Converter={StaticResource TypeToVisibleConverter}}">
这是我的 TypeToVisibleConverter。它是特定于类型的。是否有可能获得通用转换器?
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return Visibility.Collapsed;
if (value is PayModule)
return Visibility.Visible;
return Visibility.Collapsed;
}
例如,我想通过 ConverterParameter 传递所需的类型,然后对其进行转换,例如:
<Expander Header="{Binding PayModuleItem.Name}"
Visibility="{Binding PayModuleItem, Converter={StaticResource TypeToVisibleConverter},
ConverterParameter={x:Type my:PayModule}}">
-
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return Visibility.Collapsed;
if (value is typeOf(parameter)
return Visibility.Visible;
return Visibility.Collapsed;
}
【问题讨论】: