我正在尝试在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。
答案 0 :(得分:0)
找到放置在DataTemplate中的元素并不容易。你可以在这里找到一个例子http://msdn.microsoft.com/en-us/library/bb613579.aspx。
假设您正在使用MVVM模式并且在DataGrid中每行创建一个VM,我建议您向VM添加一个新属性并将组合框可见性绑定到它。