这更像是一个理论问题而不是其他任何东西,在代码的方式上并没有真正表现出来。但是主题是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; }
}
}
我希望能够在另一个窗口中调用此信息。但是,如果我创建一个新的上下文,属性路径肯定会指向其他地方吗?