这更像是一个理论问题,不能以代码的方式真正显示出来。但是主题是 C# WPF。
所以我有一个从主菜单开始的应用程序,我在其中设置了一堆变量并从文件中加载一些数据等等,准备开始主程序。我希望这可用于将要打开的主窗口。
目前,在我的应用程序中,我已经通过数据上下文进行了所有设置,这是我对 MVVM 的一次尝试,对此我很陌生。这个数据上下文链接到菜单窗口,允许我设置所有必要的数据。
但是我如何才能将其提供给新窗口。据我所知,一个新的数据上下文就像一个新对象,但是在 xaml 中,所以如果我要在下一个窗口中创建一个数据上下文,那么来自它的所有信息都会不同吗?
在我学习编程的所有过程中,我一直遇到这样的问题,我在一个地方有数据,但是没有可靠的方法将它链接到多个窗口/类/对象等。
目前我有4个文件:
1 持有所有数据类
2 我的'ViewModel'里面有这些类的对象,属性更新,不要太多
3 我的带有绑定和数据上下文的菜单及其背后的代码是空的,除了一些按钮点击
4 将要使用数据的主窗口<--这是我的问题
首先,这是一种正确的方法,我应该考虑一些不同的事情吗?我可以跨两个窗口实现数据上下文吗?
所以我在主菜单窗口中设置了上下文:
<Window.DataContext>
<local:WindowFunction x:Name="Interface"/>
</Window.DataContext>
这个链接在我的文件之间,其中包含数据对象。
class WindowFunction
{
protected PortInfo settings = new PortInfo();
protected FileInfo import = new FileInfo();
protected ObservableCollection<PersonName> lanes = new ObservableCollection<PersonName>();
public ObservableCollection<PersonName> Lane
{
get { return lanes; }
set { lanes = value; }
}
public PortInfo Settings
{
get { return settings; }
set { settings = value; }
}
public FileInfo Import
{
get { return import; }
set { import = value; }
}
}
我希望能够在另一个窗口中调用此信息。但是如果我创建一个新的上下文,属性路径肯定会指向其他地方吗?