2013-05-23 2 views
0

날짜 필드가있는 ViewModel에 바인딩 된 WPF DataGrid가 있습니다. TextBox를 사용하여 Calendar 또는 DatePicker로 날짜 필드 편집을 변경하려고했습니다. 나는 아래의 링크를 정확히 따라 갔다. 그러나 어떤 이유로 인해 DatePicker의 TextBox 옆에 캘린더가 표시되지 않습니다. 혼란 스럽네. 나는 (source) 아래에 내 코드를 붙여 복사하고 :WPF datepicker가 텍스트 상자 옆에 캘린더를 표시하지 않습니다.

<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"> 

답변

0

이유는 텍스트 상자는 데이터 그리드 셀의 전체 영역을 다루고 있다는 점이다. 셀 편집 모드로 들어가려면 셀을 두 번 클릭해야하지만 대신 텍스트 상자를 항상 누르기 때문에 셀을 두 번 클릭해야합니다. DateTemplate의 텍스트 상자에 margin = "5"를 설정하여 확인한 다음 셀의 테두리 영역을 두 번 클릭합니다. 그냥 텍스트 상자의 IsHitTestVisible = "거짓"속성을 설정 :

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

u를 감사합니다! 저게 .. 그 메모에 .. 어떻게 내가 사용자가 datepicker 텍스트 상자에 입력 할 수 없습니다 .. –

관련 문제