我遇到了一个奇怪的 WPF 问题。IMultiValueConverter
我的 WPF 项目引用的程序集中有两个定义。它们的代码相同,但名称不同。我已经多次清理和重建程序集,但由于某种原因,只有一个值转换器工作,而另一个给出“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();
}
}