如何在数据网格模板列的代码中设置属性

时间:2018-02-26 20:04:45

标签: wpf xaml datagrid

我有一个datagrid模板列,它在单元格编辑模板中使用DatePicker:

<DataGridTemplateColumn
    Header="Date Paid"
    DisplayIndex="2"
    Width="100">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock
                Text="{Binding Path=DatePaid, Converter={StaticResource conDate}, StringFormat='MMM d, yyyy'}"
                HorizontalAlignment="Center">
            </TextBlock>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <DatePicker
                SelectedDate="{Binding Path=DatePaid}">
            </DatePicker>
        </DataTemplate>
    </DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>

我想在此DatePicker的代码中设置一些属性。我知道该列不在可视树中,所以如何在代码后面引用DatePicker?

1 个答案:

答案 0 :(得分:0)

  

我知道该列不在可视树中,所以如何在代码后面引用DatePicker?

你没有。事实上,没有一个DatePicker可供参考,因为DatePicker中的每一行都会创建一个DataGrid元素。

如果您想为所有这些设置一些默认属性,可以使用Style

<Window ...>
    <Window.Resources>
        <Style x:Key="DatePickerStyle" TargetType="DatePicker">
            <Setter Property="FontSize" Value="12" />
            <!--set the properties here...-->
        </Style>
    </Window.Resources>

    <DataGrid ..>
        <DataGrid.Columns>
            ...
            <DataGridTemplateColumn
                Header="Date Paid"
                DisplayIndex="2"
                Width="100">
                ...
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <DatePicker SelectedDate="{Binding Path=DatePaid}" Style="{StaticResource DatePickerStyle}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>
</Window>