如何在WPF中获取xaml.cs之外的Page实例?

时间:2016-12-26 07:52:09

标签: c# wpf xaml

我们说我创建了一个名为Page1.xaml的页面。 现在我有Page1.xaml和Page1.xaml.cs背后的代码。

很明显使用"这个"引用Page1.xaml.cs中的Page1实例。但是,如果我有一个Commond.cs文件来存储我的命令,我想访问此文件中的控件怎么办?我怎样才能引用Page1实例?感谢。

2 个答案:

答案 0 :(得分:1)

当你走出Page1.xaml时,你就超出了范围,因此在Commond.cs中访问内容的唯一方法是在一个可以由两个cs文件共享的类中实现所需的代码

答案 1 :(得分:-1)

我想你创建独立的Command.cs的想法是把所有的action /命令放在一个单独的类中。这看起来很不错。所以基本上你可以创建一个命令库,在那里你可以注册所有的命令。

让我们看一个例子:

public static class AppCommandRepository {
    public static ICommand YourCommand { get; private set; }
    // You can also register other command as well.
    internal static void Initialize()
    {
        YourCommand = new YourCommand();                   
    }
}

现在在xaml

<Button Command="Commands:AppCommandRepository.YourCommand" CommandParameter="{Binding}" /> !--Here commands is a namespace reference in xaml which is pointing to command repo.

在YourCommand.cs中实现ICommand接口。确保在重载的execute方法中传递了Page1类的参数。 像这样:

void ICommand.Execute(Page1 parameter){}

现在,当您从Page1文件传递commandParamter时,当用户点击按钮单击事件时,Page1引用将作为execute方法的参数。还要确保将命令存储库初始化为应用程序的入口点。我想你提出的问题要广泛得多,而且可以有多种实现方式。 希望这对你有用。