0

プログラミングが初めてで、少し支援が必要です。Outlookアドインに使用されるWPFユーザーコントロールがあり、celleditingtemplate列でdatepickerを使用してデータグリッドを試すまで、すべてが順調に進んでいましたが、celltemplatecolumnには単にテキストブロックがあります。アイデアは、テキストブロックをデータソースにバインドし (正常に動作しています)、ユーザーが列を編集すると、日付ピッカーが表示され、ユーザーが日付を選択できるようにすることです。selecteddate から textblock に値を送信する方法がわかりません。完全に頭がいっぱいです。以下は、バインディングを含むデータグリッド、[Project]、[Deadline]、[DaystoDeadline]、[Responibility]、[ProcessCount]、[TasksCompleted]、[TasksRemaining] のフィールドを持つ単純な SQL テーブルです。どんな援助でも大歓迎です。

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

1 に答える 1

0

DataTemplate( )内のコントロールの名前をx:Name="DeadlineTxt" x:Name="DeadlineDatePicker"削除することから始め、 : ( )StringFormatからを削除します。SelectedDateSelectedDate="{Binding Deadline}"

            <DataGridTemplateColumn Header="Deadline">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Deadline, StringFormat='yyyy/MM/dd'}" FontFamily="Verdana" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <DatePicker SelectedDate="{Binding Deadline}" FontFamily="Verdana" >
                            <DatePicker.CalendarStyle>
                                <Style TargetType="Calendar">
                                    <Setter Property="DisplayMode" Value="Month"/>
                                </Style>
                            </DatePicker.CalendarStyle>
                        </DatePicker>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
            </DataGridTemplateColumn>
于 2012-07-26T13:56:05.780 に答える