4

DataGrid 用の Excel への汎用コンバーターを構築しようとしています。私は WPF 4.0 と DataGrid ユーザー コントロールを使用しています。このコンバーターは、このグリッド (または選択した行) からすべての値を取得し、(ファイルを保存して) Excel にエクスポートする必要があります。それは動作しますが、DataGridTemplateColumns は WPF での直接バインディングを受け入れないため、DataGridTemplateColumns に問題があります (DataGridTemplateColumns を使用して、このようにセル内にテキストと画像を表示します => [ ] "はい" - はいはText と [ ] 画像なので、1 つは TextBlock にバインドされ、もう 1 つは Image にバインドされます)。これは DataGrid の例です。

<ct:DataGridExtended AutoGenerateColumns="False"
                         HorizontalAlignment="Stretch"
                         VerticalAlignment="Stretch"
                         IsReadOnly="True"
                         FrozenColumnCount="7"
                         Margin="-1,59,-1,25"
                         Grid.Column="2"
                         ScrollViewer.IsDeferredScrollingEnabled="True"
                         ct:DataGridDoubleClick.ExecuteCommand="{Binding InformacoesPeca}"
                         ItemsSource="{Binding Placas, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                         SelectedItem="{Binding PlacasSelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                         SelectedIndex="{Binding PlacasSelectedIndex, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                         ut:SelectedItemsBehavior.SelectedItemsChangedHandler="{Binding Path=ResultsSelectionChangedCommand}">
 <DataGrid.Columns>
<DataGridTextColumn Header="Cone Seq. Orig."
                                Binding="{Binding OriginConeSeq}"
                                Visibility="Hidden" />
            <DataGridTextColumn Header="Cone"
                                Binding="{Binding Cone.ConeId}" />

<DataGridTemplateColumn Header="Nec. Acomp.">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Grid>
                            <Image Source="{Binding MonitoringNeed,Converter={StaticResource YesNoInstructionImageConverter}}"
                                   Height="16"
                                   Width="16"
                                   HorizontalAlignment="Left"
                                   Margin="2,0,0,0" />
                            <TextBlock Text="{Binding MonitoringNeed,Converter={StaticResource NoEmptyStringConverter}}"
                                       HorizontalAlignment="Left"
                                       Margin="22,0,0,0" />
                        </Grid>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
 </DataGrid.Columns>
</DataGridExtended>

したがって、DataGridTextColumn から Binding を使用してオブジェクトからデータを取得するのに問題はありませんが、DataGridTemplateColumn から Binding を取得する方法がわかりませんでした。

StackOverflow でいくつかの例を調べましたが (このように: Get textbox binding in wpf datagridtemplatecolumn )、まだ行き詰まっています。

別の問題がありますが、これは私が解決したものです。ユーザーに表示される列のみを取得する必要があります。DataGridColumn の Visibility プロパティを使用して解決した後、そのセルから値のみを取得して TemplateColumn の問題を解決しようとしています。

私の問題を説明できたことを願っています。

助けてくれてありがとう。グスタボ。

4

0 に答える 0