0
我有一个奇怪的WPF问题。我在我的WPF项目引用的程序集中有两个IMultiValueConverter
定义。他们的代码是相同的,但他们的名字是不同的。我已经多次清理并重建了程序集,但出于某种原因,只有一个值转换器可以工作,而另一个给出'不存在于clr名称空间'xaml错误中。两个IMultiValueConverters具有相同的代码,但名称不同 - 只有一个作品
注意:我知道该文件位于项目引用的正确名称空间和程序集中,因为我直接将该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();
}
}
你能显示一些代码? – 2013-03-03 10:28:59
@ RV1987查看更新 – smartcaveman 2013-03-03 10:31:51
从xaml中删除第二个转换器的引用,然后构建该转换器可用的项目,然后将xaml删除的代码添加回来,然后构建。 – ethicallogics 2013-03-03 10:36:11