将WPF DatagridCell绑定到源
我的原始datagrid确实有一些列,其中绑定值为bool。[默认情况下,这将显示为复选框] 我已经定义了一个单元格模板,可以创建 我想为此使用一个通用的datagrid控件模板,如下面定义的模板。 但是,它没有带来绑定值-它显示为空 有人能帮我找出我做错了什么吗将WPF DatagridCell绑定到源,wpf,binding,controltemplate,Wpf,Binding,Controltemplate,我的原始datagrid确实有一些列,其中绑定值为bool。[默认情况下,这将显示为复选框] 我已经定义了一个单元格模板,可以创建 我想为此使用一个通用的datagrid控件模板,如下面定义的模板。 但是,它没有带来绑定值-它显示为空 有人能帮我找出我做错了什么吗 <Style x:Key="dgCellBool" TargetType="{x:Type DataGridCell}"> <Setter Property="Template">
<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>
10
10
谢谢
Rajesh您正在尝试绑定DataGridCell的绑定属性,但DataGridCell没有任何绑定属性。Yoy应设置Path=Column.Binding。DataGridCell具有Column属性,该属性还具有Binding属性
Binding="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Column.Binding}"
我希望这会有所帮助。您需要提供一个
ContentPresenter
来呈现内容,并确保添加将从原始模板中丢失的边框:
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Border Background="{TemplateBinding Background}">
<ContentPresenter VerticalAlignment="Center"
HorizontalAlignment="Center" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
您好,Ethicalogics,我已经尝试了您的建议,但结果是一片空白。Hiya Sheridan,如果我添加了ContentPresenter,我将在哪里应用数据触发器?
<Style x:Key="dgCellBool" TargetType="{x:Type DataGridCell}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid>
<Ellipse Height="10" Width="10">
<Ellipse.Style>
<Style TargetType="Ellipse">
<Setter Property="Fill" Value="Red" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={
RelativeSource TemplatedParent}, Path=Binding}" Value="False">
<Setter Property="Fill" Value="Green" />
</DataTrigger>
</Style.Triggers>
</Style>
</Ellipse.Style>
</Ellipse>
<ContentPresenter VerticalAlignment="Center"
HorizontalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>