0

我正在尝试在我的 DataGrid 中的 DataTemplate 中找到一个 ComboBox。

首先,我尝试一下:

VisualTreeHelper.GetChildrenCount(dataGridRowInstance);

但它总是返回 0。

XAML:

                <DataGrid HorizontalAlignment="Left" Margin="10,54,0,0" VerticalAlignment="Top" Height="231" Width="571" ItemsSource="{Binding}" AutoGenerateColumns="false" x:Name="gridRestore" CellStyle="{StaticResource CellVerticalAlignCenter}">
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="Created Date" Binding="{Binding Path=CreationTime, ConverterCulture=pt-BR}" Width="120"/>
                        <DataGridTextColumn Header="Length" Binding="{Binding Path=Length}" Width="120"/>
                        <DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" Width="200"/>
                        <DataGridTemplateColumn Width="*" Header="Restore To...">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <ComboBox Name="cbx"  Width="120" DropDownOpened="Cbx_OnDropDownOpened" SelectionChanged="Cbx_OnSelectionChanged"></ComboBox>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                    </DataGrid.Columns>
                </DataGrid>

在简历中,我想根据我在 DataGrid.LoadingRow 事件中所做的测试结果隐藏 ComboBox。

4

1 回答 1

0

找到放入 DataTemplate 的元素并不容易。你可以在这里找到一个例子http://msdn.microsoft.com/en-us/library/bb613579.aspx

假设您正在使用 MVVM 模式并且您在 DataGrid 中的每行创建一个 VM,我建议向您的 VM 添加一个新属性并将组合框可见性绑定到它。

于 2013-08-02T08:39:22.953 回答