从DataGridTemplateColumn获取绑定

时间:2013-10-09 21:06:56

标签: c# wpf excel datagrid datagridtemplatecolumn

我正在尝试为我的DataGrid构建一个通用的Excel转换器。我正在使用WPF 4.0和DataGrid用户控件。此转换器应从此网格(或其选定行)中获取所有值并导出到excel(通过保存文件)。它有效,但我在使用DataGridTemplateColumns时遇到了一些麻烦,因为DataGridTemplateColumns不接受WPF中的直接绑定(我使用DataGridTemplateColumns来显示单元格内的文本和图像,例如=>> []“是” - 是是一个Text和[]一个图像,所以它是一个绑定到TextBlock而另一个绑定到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问题。

我希望我能够解释我的问题。

感谢您的帮助。 古斯塔沃。

0 个答案:

没有答案