【发布时间】:2011-03-20 11:06:38
【问题描述】:
我在一个列表中有一个列表.. 这个列表的类型是“RequirementsBase”(一个抽象类)。
我想要做的是让列表中每个项目的 Name 属性在从父列表框中选择项目时显示在列表框中。 (希望这是有道理的)。如果没有转换器,当项目显示在列表框中时,我会得到类的完整路径命名空间。一旦我连接了一个转换器,它就会显示列表的名称,而不是列表中的内容。它还在列表框中显示该名称,每个字母在其自己的行上。
这是我连接转换器的 XAML:
<ListBox Name="lstRequirements"
ItemsSource="{Binding ElementName=listTreasureCards,
Path=SelectedItem.Requirements,
Converter={StaticResource RequirementConverter}}" />
这是我的转换器的代码:
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return value.GetType().Name;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return value.GetType();
}
我是菜鸟,所以请说菜鸟。 :)
【问题讨论】:
-
从问题中不清楚您到底想显示什么。举个例子会有所帮助。
-
我想显示列表中类类型的 Name 属性。所以如果我要这样做: List
mylist (RequirementsBase 是一个抽象类,所以列表实际上包含性别、级别等项目)如果我做了 mylist[0].GetType().Name我会得到“性”。如何让它显示在我的列表框中而不是它的名称空间中 - 即 GameInfo.Requirements.Sex?
标签: c# wpf data-binding converter