0

元のデータグリッドには、バインドされた値が bool である列がいくつかあります。[デフォルトでは、これはチェック ボックスとして表示されます]

セル テンプレートを定義し、作成することができました

以下に定義されているような、一般的なデータグリッド コントロール テンプレートを使用したいと思います。ただし、バインディング値は取り込まれません。空白で表示されます。

誰かが私が間違っていることを見つけるのを手伝ってくれますか?

    <Style x:Key="dgCellBool" TargetType="{x:Type DataGridCell}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Ellipse>
                            <Ellipse.Height>10</Ellipse.Height>
                            <Ellipse.Width>10</Ellipse.Width>
                            <Ellipse.Style>
                                <Style TargetType="Ellipse">
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Binding}" Value="True">
                                            <Setter Property="Fill" Value="Red"></Setter>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Binding}"  Value="False">
                                            <Setter Property="Fill" Value="Green"></Setter>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </Ellipse.Style>   
                        </Ellipse>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
    </Style>

ありがとうラジェッシュ

4

2 に答える 2

0

DataGridCell の Binding プロパティをバインドしようとしていますが、DataGridCell には Binding プロパティがありません。Yoy は Path=Column.Binding を設定する必要があります。DataGridCell には、さらに Binding プロパティを持つ Column プロパティがあります。

Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Column.Binding}" 

これが役立つことを願っています。

于 2013-08-20T15:30:52.007 に答える