INotifyPropertyChanged インターフェイスを持つ bindinglist があります。物事はうまくいきます。この bindinglist は、リストボックスにバインドされているファイル名のリストです。パス全体ではなく名前だけを表示したいのですが、ファイル名を選択してファイルをロードするときにパス全体が必要です。
この目的で IValueConverter を使用しています。ここでは、Path.GetFileName プロパティを使用してフル パスをファイル名に変更します。バインディングは正しいのですが、バインディング リストが希望どおりに値を変更していません。以下に IValueConverter コードを貼り付けています。このコードの何が問題なのか教えてください。ここで変換を参照しました。
[ValueConversion(typeof(string), typeof(string))]
public class pathtoname : IValueConverter
{
public object Convert(object value, Type targetType, object parameter ,CultureInfo culture)
{
BindingList<string> ls = value as BindingList<string>;
ls.Select(x => "WW");
return ls;//all values should be WW. But they are not.(debugger)
}
public object ConvertBack(object value, Type targetType, object parameter,CultureInfo culture)
{
return null;
}
}
編集: 値が変換されるようになりました。しかし、パス全体を取得するにはどうすればよいでしょうか? 2 つのリストを保持しますか? 1 つはフル パス用で、もう 1 つはhereのような名前です。より良い解決策はありますか?