C# WPF:如何通过代码隐藏找到控件
我需要找到datagrid控件,它位于combobox附近,后面有一个代码。发件人是一个组合框 XAML代码:C# WPF:如何通过代码隐藏找到控件,c#,wpf,xaml,C#,Wpf,Xaml,我需要找到datagrid控件,它位于combobox附近,后面有一个代码。发件人是一个组合框 XAML代码: <Window.Resources> <BooleanToVisibilityConverter x:Key="BoolToVis" /> <Style TargetType="{x:Type ComboBox}" x:Key="ComboboxSpreadsheetStyle"> <Se
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVis" />
<Style TargetType="{x:Type ComboBox}" x:Key="ComboboxSpreadsheetStyle">
<Setter Property="SelectedIndex" Value="0"/>
<EventSetter Event="SelectionChanged" Handler="Combobox_SelectionChanged"/>
</Style>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<ComboBox Grid.Row="0" Style="{StaticResource ComboboxSpreadsheetStyle}">
<ComboBoxItem x:Name="it1">Item1</ComboBoxItem>
<ComboBoxItem x:Name="it2">Item2</ComboBoxItem>
</ComboBox>
<DataGrid Background="Blue" Grid.Row="1" Visibility="{Binding ElementName=it1, Path=IsSelected, Converter={StaticResource BoolToVis}}">
<DataGrid.Columns>
<DataGridTextColumn>
<DataGridTextColumn.Header >
<TextBlock Text="Text1"/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
<DataGrid Background="Red" Grid.Row="1" Visibility="{Binding ElementName=it2, Path=IsSelected, Converter={StaticResource BoolToVis}}">
<DataGrid.Columns>
<DataGridTextColumn>
<DataGridTextColumn.Header >
<TextBlock Text="Text2"/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
您可能会为DataGrid指定一个名称,并在代码隐藏中访问相同的via名称 这里有一个例子
<DataGrid Background="Blue" Grid.Row="1" Visibility="{Binding ElementName=it1, Path=IsSelected, Converter={StaticResource BoolToVis}}"
x:Name="myGrid">
<DataGrid.Columns>
....
使用x:name为您的网格和datagrid命名,然后您可以在代码中访问,并想知道答案是否解决了您的问题?“你们也许也会接受同样的答案。”普什普拉杰——答案在我的问题中已经解决了,但在我的情况下,它没有帮助。因为,所讨论的代码不完整。
<DataGrid Background="Blue" Grid.Row="1" Visibility="{Binding ElementName=it1, Path=IsSelected, Converter={StaticResource BoolToVis}}"
x:Name="myGrid">
<DataGrid.Columns>
....
private void Combobox_SelectionChanged(object sender, RoutedEventArgs e)
{
//find dataGrid control
//myGrid.FillData etc...
}