奇妙なWPFの問題が発生しています。IMultiValueConverter
WPFプロジェクトによって参照されるアセンブリに2つの定義があります。それらのコードは同じですが、名前が異なります。アセンブリを何度もクリーンアップして再構築しましたが、何らかの理由で値コンバーターの1つだけが機能し、もう1つは'clr名前空間に存在しません'xamlエラーを返します。
注:ファイルがプロジェクトが参照している正しい名前空間とアセンブリにあることはわかっています。これは、dllをWPFプロジェクトのbinフォルダーから直接反映したためです。
この現象の説明はありますか?
//// this works
public class IndexConverter : IMultiValueConverter
{
public virtual object Convert(
object[] values, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
var element = values[0] as Object;
var sequence = values[1] as IEnumerable;
return sequence.Cast<Object>().ToList().FindIndex(c => c.Equals(element)).ToString();
}
public virtual object[] ConvertBack(
object value, Type[] targetTypes,
object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
//// this gives me xaml errors
public class IndexConverterCopy : IMultiValueConverter
{
public virtual object Convert(
object[] values, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
var element = values[0] as Object;
var sequence = values[1] as IEnumerable;
return sequence.Cast<Object>().ToList().FindIndex(c => c.Equals(element)).ToString();
}
public virtual object[] ConvertBack(
object value, Type[] targetTypes,
object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}