WPF日期选择器未显示文本框旁边的日历

时间:2013-05-23 10:14:03

标签: c# wpf mvvm

我有一个绑定到ViewModel的WPF DataGrid,它有一个日期字段。我想将日期字段编辑从使用TextBox更改为Calendar或DatePicker。我完全按照下面的链接。但是,出于某种原因,我无法在DatePicker的TextBox旁边看到日历。这令人困惑。我正在复制粘贴下面的代码(source):

<Grid.Resources>            
    <DataTemplate x:Key="DateTemplate">
        <TextBox IsReadOnly="False" Text="{Binding TestDate}"></TextBox>
    </DataTemplate>

    <DataTemplate x:Key="EditingDateTemplate">
        <DatePicker SelectedDate="{Binding TestDate}" />
    </DataTemplate>
</Grid.Resources>

 <DataGridTemplateColumn Header="Test Date" IsReadOnly="False" CellTemplate="{StaticResource DateTemplate}" CellEditingTemplate="{StaticResource EditingDateTemplate}" Width="120">

1 个答案:

答案 0 :(得分:0)

原因是文本框覆盖了数据网格单元格的整个区域。要进入单元格编辑模式,您需要双击单元格,但不能,因为您总是按下文本框。您可以通过在DateTemplate中为文本框设置margin =“5”来检查它,然后尝试双击单元格的边框区域。 只需为文本框设置IsHitTestVisible =“False”属性:

<DataTemplate x:Key="DateTemplate">
    <TextBox IsReadOnly="False" Text="{Binding TestDate}" IsHitTestVisible="False"></TextBox>
</DataTemplate>
<DataTemplate x:Key="EditingDateTemplate">
    <DatePicker SelectedDate="{Binding TestDate}" />
</DataTemplate>