У меня возникла странная проблема WPF. У меня есть два определения IMultiValueConverter
в сборке, на которые ссылается мой проект WPF. Их код идентичен, но их имена разные. Я несколько раз очищал и перестраивал сборки, но по какой-то причине работает только один из преобразователей Value, а другой - «не существует в ошибке xaml в пространстве имен clr».Два IMultiValueConverters с идентичным кодом, но разные имена - только один работает
Примечание: Я знаю, что файл находится в правильном пространстве имен и сборке, на которые ссылается проект, потому что я отразил dll непосредственно из папки bin проекта проекта WPF.
Есть ли какие-либо объяснения этому явлению?
//// 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();
}
}
Вы можете показать код? –
@ RV1987 см. Обновление – smartcaveman
Удалите ссылку на этот второй конвертер из xaml, а затем создайте проект, в котором этот конвертер доступен, а затем добавьте xaml удаленный код обратно, а затем выполните сборку. – ethicallogics