4

この問題について助けてください。これを処理する方法がわかりません。

私はコンボボックスとデータグリッドを持っています。コンボックス値を選択したときはいつでも、データグリッドに新しいデータをロードする必要があり、それは完全に機能します。しかし、チェックボックス付きのすべての列をチェックすると、チェックボックス付きの DataGridTemplateColumn.HeaderTemplate もチェックされ、チェックされていない状態でも機能しました。どちらも問題ありません。

今私の問題は、コンボボックス、データグリッドを選択したときです->ヘッダーテンプレートチェックボックスをオフにする必要があります。このために起動できるイベントはありますか? 以下の私のコード。

コンボボックスはデータグリッドの外にあります。

                        <DataGridTemplateColumn>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox Name="checkadded" Margin="6,0" IsChecked="{Binding IsSelected, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}"  />
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>

                        <DataGridTemplateColumn.HeaderTemplate>

                            <DataTemplate>
                                <CheckBox Name="ChkAllAdd" IsChecked="False" Width="50" Loaded="chkallLoaded" Checked="ChkAll_Checked"  Unchecked="ChkAll_Unchecked"  IsThreeState="False" Padding="4,3,4,3" HorizontalContentAlignment="Left" HorizontalAlignment="Center"  />
                            </DataTemplate>

                        </DataGridTemplateColumn.HeaderTemplate>

                        </DataGridTemplateColumn>


                    </DataGrid.Columns>                        

                    <DataGrid.Resources>

                        <Style TargetType="{x:Type DataGridColumnHeader}">
                            <Setter Property="Foreground" Value="#686868"/>
                            <Setter Property="FontWeight"  Value="Bold" />
                        </Style>

                        <Style TargetType="{x:Type DataGridCell}" >
                            <Style.Triggers>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter Property="Foreground" Value="white"/>
                                    <Setter Property="Background" Value="#93A8A9"/>
                                    <Setter Property="FontWeight" Value="Bold"/>
                                </Trigger>
                            </Style.Triggers>
                        </Style>

                    </DataGrid.Resources>

                </DataGrid>
4

1 に答える 1

0

コンテンツ コントロールの ControlTemplate を作成し、その中に DataGrid と ComboBox Xaml を配置します。これで Combobox の EventTrigger を作成できるようになり、バインディングで要素名を使用して CheckedBox Checked を設定できるようになりました。これは役に立ちます。

于 2013-01-18T15:52:06.857 に答える