У вас есть открытые методы во внутреннем классе.Сделайте класс общедоступным, очистите и восстановите.Публичные методы / свойства понижаются до внутреннего во внутреннем классе.
Какие бы процессы xaml не были полностью надежными, и довольно часто встречаются подобные ложные голубые извилины.
Он использует отражение, чтобы проверить, являются ли преобразователи икак в exe.Вот почему вам нужно скомпилировать, прежде чем конвертер потеряет сквогли.Насколько я понимаю, это означает, что конвертеры должны быть открытыми.
Для VS также довольно распространено придерживаться старых определений вещей, если вы не очистите их явно.... это раскручивается нормально?
Кстати, я также рекомендую подход markupextension, который позволяет вам использовать конвертеры, не делая их ресурсом в xaml.
Например:
public class IsOfTypeConverter : MarkupExtension, IValueConverter
{
public Type TypeToCompare { get; set; }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value.GetType() == TypeToCompare;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}
Может использоваться:
<DataTrigger Binding="{Binding ., Converter={ui:IsOfTypeConverter TypeToCompare={x:Type ui:PlaceVM}}}" Value="True">