프로그래밍에 익숙하지 않고 조금 도움이됩니다. 나는 WPF usercontrol을 Outlook Add-in에 사용했고, celleditingtemplate 열의 datepicker를 사용하여 DataGrid를 시도 할 때까지 모든 것이 순조롭게 진행되었지만 celltemplatecolumn에는 단순히 textblock이 있습니다. 아이디어는 데이터 소스에 바인드 된 텍스트 블록 (잘 작동합니다)을 사용자가 열을 편집 할 때 datepicker가 표시되고 사용자가 날짜를 선택할 수 있도록하는 것입니다. 나는 단순히 selecteddate에서 텍스트 블록으로 값을 보내는 방법을 알아낼 수 없으며 완전히 끝내고 있습니다. 아래는 바인딩이있는 DataGrid, [Project], [Deadline], [DaystoDeadline], [Responsibility], [ProcessCount], [TasksCompleted], [TasksRemaining] 필드가있는 간단한 SQL 테이블입니다. 어떤 도움이라도 대단히 감사하겠습니다.datepicker를 내부 DataGrid에서 참조하십시오.
<Grid>
<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Left" Margin="6,0,0,0" Name="ProjectsGrid" ScrollViewer.CanContentScroll="True" VerticalAlignment="Top" VerticalScrollBarVisibility="Auto" ItemsSource="{Binding}" CanUserAddRows="False" CanUserDeleteRows="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Commands">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Click="Select_Button" Content="Select" Name="SelectButton" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Binding="{Binding Project}" Header="Project" IsReadOnly="True" FontFamily="Verdana" />
<DataGridTemplateColumn Header="Deadline">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Deadline, StringFormat='yyyy/MM/dd'}" FontFamily="Verdana" x:Name="DeadlineTxt" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding Deadline, StringFormat='yyyy/MM/dd'}" FontFamily="Verdana" x:Name="DeadlineDatePicker">
<DatePicker.CalendarStyle>
<Style TargetType="Calendar">
<Setter Property="DisplayMode" Value="Month"/>
</Style>
</DatePicker.CalendarStyle>
</DatePicker>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Binding="{Binding DaystoDeadline}" Header="Days to Deadline" IsReadOnly="True" FontFamily="Verdana" />
<DataGridTextColumn Binding="{Binding Responsibility}" Header="Responsibility" IsReadOnly="True" FontFamily="Verdana" />
<DataGridTextColumn Binding="{Binding Processes}" Header="Processes" IsReadOnly="True" FontFamily="Verdana" />
<DataGridTextColumn Binding="{Binding Completed}" Header="Completed" IsReadOnly="True" FontFamily="Verdana" />
<DataGridTextColumn Binding="{Binding Remaining}" Header="Remaining" IsReadOnly="True" FontFamily="Verdana" />
</DataGrid.Columns>
</DataGrid>
이다 (
SelectedDate="{Binding Deadline}"
)를. 선택한 날짜를 현재 문제가되는 텍스트 블록으로 다시 참조해야합니다. –글쎄, 내 코드를 다시 테스트했다. datepicker에서 다른 날짜를 선택하면 Deadline 필드가 업데이트되므로 셀을 떠날 때 텍스트 블록이 업데이트된다. –
많은 분들께 감사드립니다. –