У меня есть TreeView привязаны к данным (модель MVVM), где я использую пользовательский элемент управления для отображения данных.Могу ли я получить User Control из TreeViewItem?
<HierarchicalDataTemplate
DataType="{x:Type vm:SiteViewModel}"
ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<uc:MyUserControl x:Name="control1" Text="{Binding SiteName}" />
</StackPanel>
</HierarchicalDataTemplate>
Когда элемент выбран, мне нужен доступ к самому пользовательскому управлению.
Я нашел пример того, что делал что-то похожее на то, что я хочу, но он использовал TreeViewItem.Header. В моем коде из-за привязки TreeViewItem.Header является объектом SiteViewModel.
Есть ли простой способ извлечения фактического пользовательского элемента управления (типа MyUserControl) из самого TreeViewItem?
Спасибо.
Зачем вам нужен доступ к управлению? Почему вы не можете получить доступ к модели представления элемента управления и внести в нее изменения? –
Мне нужен доступ к элементу управления, чтобы установить на нем свойство. Пользовательский элемент управления будет переключаться между отображением TextBlock и TextBox, чтобы я мог редактировать «на месте» в TreeView. В любом случае, это план, но я начинаю думать, что это может быть немного продвинуто для меня! Может быть, есть лучший способ добиться этого. –
Да, посмотрите в MVVM. Это позволит вам манипулировать моделью, а не самим представлением. Представление будет реагировать на изменения в модели посредством привязки/триггеров данных. –