Доступ к DataContext в коде-за
-
03-07-2019 - |
Вопрос
Будьте осторожны, это довольно простой вопрос (я думаю).
У меня есть UserControl, который называется MyUserControl.Я использую его в DataTemplate для моего ListBox:
<l:MyUserControl DataContext="Test" />
Теперь я хочу получить доступ к этому DataContext в коде MyUserControl, и я ожидаю, что DataContext будет содержать строковый объект с содержимым "Test".Однако DataContext имеет значение null.Чего я здесь не понимаю?
Решение
Если вы хотите получить доступ к свойству DataContext в коде позади, дайте пользовательскому элементу управления (или любым элементам управления, если уж на то пошло) имя:
в коде, стоящем за:
MyControl.DataContext = некий объект.;
Хотя в вашем примере установка DataContext в значение "Test" ничего не даст.
Ознакомьтесь с привязкой данных в WPF http://msdn.microsoft.com/en-us/library/aa480224.aspx
Другие советы
Вам нужно поле или свойство в классе MyUserControl с именем DataContext.
См. здесь , чтобы узнать о пользователе управлять свойствами в .net.