Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从另一个选项卡引用选项卡上的控件?_C#_Wpf_Gridview_Tabs - Fatal编程技术网

C# 如何从另一个选项卡引用选项卡上的控件?

C# 如何从另一个选项卡引用选项卡上的控件?,c#,wpf,gridview,tabs,C#,Wpf,Gridview,Tabs,我有一个带有选项卡控件的WPF主窗口。 第一个选项卡称为Persons,它有一个绑定到Persons可观察集合的GridView。 我选中复选框,然后单击“下一步”按钮转到下一个选项卡,该选项卡有一个几乎相同的绑定到SelectedPersons的人员网格。 但在第一个选项卡的“下一步”按钮上,显然我需要刷新第二个选项卡上的gridView 比如datagrid.items.refresh 我只是不知道如何引用它。 像这样的 public override void NextTab() { ((

我有一个带有选项卡控件的WPF主窗口。 第一个选项卡称为Persons,它有一个绑定到Persons可观察集合的GridView。 我选中复选框,然后单击“下一步”按钮转到下一个选项卡,该选项卡有一个几乎相同的绑定到SelectedPersons的人员网格。 但在第一个选项卡的“下一步”按钮上,显然我需要刷新第二个选项卡上的gridView

比如datagrid.items.refresh

我只是不知道如何引用它。 像这样的

public override void NextTab()
{
((DataGrid)this.MainTabs[1].Controls["SelectedPersonsGridView"]).items.refresh
}
我是WPF的新手,正如你们所看到的,我不知道我在做什么,但这基本上就是我要做的。
我只是还不知道模式。

如果您已将控件命名为SelectedPersonsGridView,则无需查找该控件,只需使用其名称来引用它即可

XAML

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TabControl>
            <TabItem Header="Tab1">
                <Grid Background="#FFE5E5E5">
                    <Button Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="22,36,0,0" Click="Button_Click"/>
                </Grid>
            </TabItem>
            <TabItem Header="Tab2">
                <Grid Name="SelectedPersonsGridView">

                </Grid>
            </TabItem>
        </TabControl>
    </Grid>
</Window>
using System.Windows;
using System.Windows.Media;

namespace WpfApplication1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            SelectedPersonsGridView.Background = Brushes.Red;
        }
    }
}