これにより、コンボボックスにわかりやすい名前が表示されないようです。何が間違っているのかわかりません。
<ComboBox ItemsSource="{Binding MyTypes, Mode=OneTime}"
SelectedItem="{Binding SelectedType}"/>
public sealed class MyType : IMyInterface
{
public override string ToString()
{
return "Friendlier Name";
}
}
IValueConverter
また、私は(うまくいかなかった)を使用しようとしました...
<ComboBox ItemsSource="{Binding MyTypes, Mode=OneTime}"
MemberDisplayPath="{Binding Converter={StaticResource MyConverter}}"
SelectedItem="{Binding SelectedType}"/>
[ValueConversion(typeof(Type), typeof(String))]
public sealed class MyConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var type = value as Type;
if (type == null)
{
return DependencyProperty.UnsetValue;
}
return type.ToString();
}
...
}
問題は、IValueConverter が渡される値として ViewModel のみを取得するように見えることです...そこで何が起こっているのかわかりません。