編集可能なルート TreeViewItem が必要です。そのために Event を作成します
<TreeView Height="182" Name="infoBox_treeview" Margin="0,2,0,182" BorderBrush="#FFA5A5A5" BorderThickness="2">
<TreeViewItem Header="t1"></TreeViewItem>
<TreeViewItem Header="t2">
<TreeViewItem Header="t21"></TreeViewItem>
<TreeViewItem Header="t22"></TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="t3"></TreeViewItem>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="MouseDoubleClick" Handler="infobox_item_edit"></EventSetter>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ContextMenu>
<ContextMenu Name="infoBox_treeview_menu">
<MenuItem Header="Добавить ссылку" Name="infobox_menu_addlink" Click="infobox_menu_addlink_Click"></MenuItem>
<MenuItem Header="Удалить ссылку" Name="infobox_menu_dellink"></MenuItem>
</ContextMenu>
</TreeView.ContextMenu>
</TreeView>
C# の場合:
private void infobox_item_edit(object sender, RoutedEventArgs e)
{
var selItem=(TreeViewItem)this.infoBox_treeview.SelectedItem;
selItem.Header = new TextBlock() { Text = selItem.Header.ToString() };
}
しかし、私には2つの問題があります:
1) このコードは TextBlock のヘッダーを変更しません
2) この XAML は、すべての項目にイベントを設定します。ルート項目のみを編集したい...
手伝ってくれてありがとう!