添付のプロパティを使用して、ツリービュー内に埋め込まれているコンボボックスの選択変更イベントにコマンドを割り当てることを望んでいます。ツリーの階層データテンプレート内に添付プロパティを設定しようとしていますが、コマンドが設定されておらず、コンボボックスの項目が変更されても起動しません。
アタッチされたプロパティをデータテンプレートの外部のコンボボックスに直接設定すると、正常に機能することがわかりました。
テンプレートにプロパティを設定する方法は次のとおりです。
<HierarchicalDataTemplate x:Key="template1"
ItemsSource="{Binding Path=ChildColumns}">
<Border
Background="{StaticResource TreeItem_Background}"
BorderBrush="Blue"
BorderThickness="2"
CornerRadius="5"
Margin="2,5,5,2"
HorizontalAlignment="Left" >
<Grid>
<Grid.ColumnDefinitions >
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock MinWidth="80" HorizontalAlignment="Left" Grid.Column="0" Margin="5,2,2,2" Grid.Row ="0"
Text="{Binding Path=ColName}"/>
<ComboBox Name="cboColType" Grid.Column="1"
HorizontalAlignment="Right"
ItemsSource="{Binding Source={StaticResource dataFromEnum}}"
SelectedItem="{Binding Path=ColumnType}"
Margin="2,2,2,2"
local:ItemSelectedBehavior.ItemSelected="{Binding Path=LoadConfigCommand}"
/>
</Grid>
</Border>
</HierarchicalDataTemplate>
スタイルも作ってみました
<Style x:Key="childItemStyle" TargetType="{x:Type FrameworkElement}">
<Setter Property="local:ItemSelectedBehavior.ItemSelected" Value="{Binding Path=LoadConfigCommand}" />
</Style>
itemcontainerstyleを階層データテンプレートのスタイルに設定します。それでも運がありません。
<HierarchicalDataTemplate>
...
<ComboBox Name="cboColType" Grid.Column="1"
HorizontalAlignment="Right"
ItemsSource="{Binding Source={StaticResource dataFromEnum}}"
SelectedItem="{Binding Path=ColumnType}"
Margin="2,2,2,2"
ItemContainerStyle={StaticeResource childItemStyle}"
/>
...
</HierarchicalDataTemplate>
私はまだWPFについて多くのことを学んでいるので、添付ファイルのプロパティを設定できない階層データテンプレートに何か特別なことがあると思います。フォーラムで同様の投稿を見つけ、上記のようにソリューションを実装しようとしました。 、しかし、運が悪かったので検索と実験を1日行った後、誰かがこれについてアイデアを持っていることを願っています...