Событие SelectedItemChanged и свойство SelectedItem TreeView не происходят, когда TreeViewItem является элементом управления вводом, таким как Textbox.Пример кода ниже иллюстрирует проблему путем размещения точки останова в событии TreeView SelectedItemChanged.Эта точка останова срабатывает при выборе «Заголовок строки», но не «Заголовок текстового поля».
Я предполагаю, что Textbox или RichTextbox (мое реальное приложение) потребляет какое-то жизненно важное всплывающее событие.Как я могу заставить TreeView SelectedItem вести себя для TextBox так же, как для элемента управления, такого как Label?
Примечание. Если я смогу решить эту проблему, мне потребуется выполнить двустороннюю привязку к SelectedItem, так как я использую MVVM иMEF.SelectedItem только для чтения, что является проблемой, которую я планирую решить (http://silverscratch.blogspot.com/2010/11/two-way-binding-on-treeviewselecteditem.html).Я думал, что эта ссылка может помочь кому-то.
XAML:
<TreeView SelectedItemChanged="TreeView_SelectedItemChanged">
<TreeViewItem>
<TreeViewItem.Header>
<TextBox>
Textbox Header
</TextBox>
</TreeViewItem.Header>
</TreeViewItem>
<TreeViewItem>
<TreeViewItem.Header>
String Header
</TreeViewItem.Header>
</TreeViewItem>
</TreeView>
Код сзади:
private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
// Breakpoint will fire when "String Header" Selected
// !!! Breakpoint does not fire when Textbox Selected
var newValue = e.NewValue;
var oldValue = e.OldValue;
}
Спасибо,