Есть у меня главная форма, у нее в DataContext
указана модель этой формы. В этой модели есть свойство, ссылающееся на другую модель. Я хочу определенный элемент формы привязать к контексту той самой модели, что находится в свойстве. Я пробовал писать DataContext={Binding anotherModel}
, это не помогает. даже если использовать Mode=TwoWay
.
Модель:
public static MainWindow instance; // статическая ссылка на объект MainWindow
private static MyClass _anotherModel = null; // внутренне хранилище значения
public static MyClass anotherModel // обработчик изменения значения
{
get => _anotherModel;
set
{
if (_anotherModel == value) return;
_anotherModel = value;
instance.PropertyChanged?.Invoke(instance, new PropertyChangedEventArgs("anotherModel "));
}
}
Элемент формы:
<TabControl x:Name="Tabs" DataContext="{Binding anotherModel, Mode=TwoWay}"></TabControl>
Когда я проверяю DataContext
этого элемента через динамическое визуальное дерево, то там написано BindingExpression
и его нельзя просмотреть.
Интересный факт: Если перед инициализацией компонентов присвоить этому свойству ссылку на модель, то в инспекторе оно будет отображено и его можно просмотреть.
Когда я сделал свойство нестатическим и стал вызывать PropertyChanged
непосредственно из самой модели (вместо того, чтобы вызывать его из instance
), все заработало.
Было:
private static MyClass _anotherModel = null;
public static MyClass anotherModel
{
get => _anotherModel;
set
{
if (_anotherModel == value) return;
_anotherModel = value;
instance.PropertyChanged?.Invoke(instance, new PropertyChangedEventArgs("anotherModel"));
}
}
Стало:
private MyClass _anotherModel = null;
public MyClass anotherModel
{
get => _anotherModel;
set
{
if (_anotherModel == value) return;
_anotherModel = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("anotherModel"));
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно написать аналог утилиты regedit для работы с реестром Windows для курсовой на c++, можно и на c#Хотелось бы уточнить, насколько вообще это задание...
Есть интовый массив с кодами символовЕго нужно записать в файл
Был задан такой вопрос, но я вроде как приблизился к решению вопроса о своей задачеВ интернете найден мной такой метод: