ツリービュー コントロールの HierarchicalDataTemplate を作成します。マウスを使用してツリー項目をクリックすると、選択を変更できます。ここで、キーボードの上下キーを使用して、選択範囲を上下に移動します。しかし、それはうまくいかないようです。Google や Stackoverflow でいろいろ検索しましたがだめでした。
この件について新しいスレッドを立てたので、どなたか教えていただけないでしょうか?どうも。
<HierarchicalDataTemplate x:Uid="HierarchicalDataTemplate_1" x:Key="My_data_template" >
<ContentControl x:Uid="ContentControl_1" MouseDoubleClick="MouseDoubleClick" MouseRightButtonDown="MouseRightClick">
<Grid x:Uid="Grid_2" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Uid="ColumnDefinition_1" Width="*"/>
<ColumnDefinition x:Uid="ColumnDefinition_2" Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel x:Uid="StackPanel_3" HorizontalAlignment="Left" Orientation="Horizontal" Grid.Column="0">
<TextBlock x:Uid="TextBlock_13" Text="{Binding Name}" VerticalAlignment="Center" Margin="3,0,0,1" TextWrapping="NoWrap"/>
</StackPanel>
<CheckBox x:Uid="CheckBox_3" HorizontalAlignment="Right" Click="CheckBox_Click" Grid.Column="1" ToolTip="On/Off">
</CheckBox>
</Grid>
</ContentControl>
</HierarchicalDataTemplate>
別の質問は、マウスを使用してテキストブロックをクリックしてアイテムを選択できることですが、マウスを使用して CheckBox をクリックすると、アイテムを選択できません。CheckBoxをクリックしたときにツリービュー項目を選択する方法はありますか?
テンプレートをツリービューに適用する方法は次のとおりです。
<TreeView x:Name="tv_pointcloud" x:Uid="TreeListView_1"
ItemTemplateSelector="{StaticResource DataAccessor}"
......
/>
public class DataAccessor : DataTemplateSelector
{
public DataAccessor()
{
Init();
}
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
var element = container as FrameworkElement;
var template = element.FindResource("My_data_template") as DataTemplate;
return template;
}
......
}
ありがとう。