У меня есть пользовательский древовидный элемент управления, и я привязываю свойство элемента управления SelectedTreeItem, которое является типом объекта, к свойству SelectedItem в viewmodel. При установке типа SelectedItem в качестве объекта отсутствует красная граница проверки, но при использовании типа SelectedItem в качестве модели я получаю эту красную границу.
Эта граница появляется после отмены выбора элемента, который возвращает ноль из элемента управления в viewmodel.
По результатам некоторых исследований я обнаружил, что это связано с тем, что оба типа являются разными, и в привязке необходимо использовать конвертер, поэтому я использовал конвертер
XAML:
SelectedTreeItem="{Binding SelectedItem, Mode=TwoWay,Converter={StaticResource selectedItemConverter}}"
Свойство ViewModel:
private Model selectedItem;
public Model SelectedItem
{
get
{
return selectedItem;
}
set
{
selectedItem = value;
this.RaisePropertyChanged(() => this.SelectedItem);
}
}
Преобразователь:
public class SelectedItemConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
object obj = null;
obj = (value as object);
return obj;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
}
Даже с этим конвертером у меня та же проблема
что я делаю не так? красная линия