私は愚かな時間この問題に取り組んできました。私の内なる男が「やらないで」と言っているにもかかわらず、道を尋ねる時が来ました。
MVVM デザイン パターンを使用して WPF C# でコーディングしています。私たちはパターンに厳密に従うよう努めており、オプションがない場合やそうすることが完全に不合理でない限り、コード ビハインドには何も入れません。そうは言っても、私は Telerik RadTreeView を使用しています。これが私の XAML でのスニペットです。
<telerik:RadTreeView IsExpandOnSingleClickEnabled="True" IsLineEnabled="True" Margin="5"
ItemsSource="{Binding ItemsView}"
SelectedItem="{Binding SelectedWidget, Mode=TwoWay}"
ItemTemplate="{StaticResource NodeTemplate}" />
現在、ツリーは適切に機能しているため、ツリー項目を強調表示してビューの [OK] ボタンをクリックすると、すべて問題ありません。ただし、ユーザーがツリー項目の 1 つをダブルクリックできるようにする必要もあります。これは、必要なロジックを備えたビュー モデルに、すでにコマンドとメソッド、protected override void OkAction()があることを意味します。Telerik は、ツリー項目のダブルクリックの機能を提供することになっているItemDoubleClickと呼ばれるプロパティを提供します。しかし、ビューモデルでこれを行うことができるものは何も見つかりません。言い換えれば、バインディングを行うにはどうすればよいですか? 私たちのプロジェクトには、使用できると言われたダブルクリックの動作設定もありますが、動作の経験はありません。私はまだWPFに少し濡れています。
役立つ場合は、Telerik のドキュメントへのリンクを次に示します: http://www.telerik.com/help/wpf/radtreeview-events-overview.html
誰かが提供できる助けや指示をいただければ幸いです。
これを試してくださいスタン:
<Grid.Resources>
<DataTemplate x:Key="WidgetTemplate">
<StackPanel Orientation="Horizontal">
<Image Source="/Resources/gear1.png" Margin="1" Stretch="None" />
<TextBlock Text="{Binding Name}" VerticalAlignment="Center" Margin="6,0,0,0" />
</StackPanel>
</DataTemplate>
<HierarchicalDataTemplate x:Key="NodeTemplate" ItemsSource = "{Binding Children}" ItemTemplate="{StaticResource WidgetTemplate}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</Grid.Resources>