これは何よりも理論的な問題であり、コードの方法で実際に多くを示すことはできません. ただし、トピックは C# WPF です。
そこで、一連の変数を設定し、ファイルからいくつかのデータをロードするなど、メイン プログラムを開始する準備ができているメイン メニューでアプリケーションを開始します。開かれるメインウィンドウでこれを利用できるようにしたい。
現在、私のアプリケーションでは、データ コンテキストによってすべての設定を行っています。これは、私が初めて使用する MVVM での試みです。このデータ コンテキストはメニュー ウィンドウにリンクされており、必要なすべてのデータを設定できます。
しかし、それを新しいウィンドウで利用できるようにするにはどうすればよいですか。私が知る限り、新しいデータ コンテキストは新しいオブジェクトのようなものですが、xaml では、次のウィンドウでデータ コンテキストを作成すると、そこからのすべての情報が異なるのでしょうか?
私はプログラミングのすべての学習で常にこのようなことに問題を抱えていました.1つの場所にデータがありますが、それを複数のウィンドウ/クラス/オブジェクトなどにリンクする適切な方法はありません.
現在、私は4つのファイルを持っています:
1 すべてのデータ クラスを保持する
2 これらのクラスのオブジェクト、プロパティの更新、あまり多くない「ViewModel」
3 バインディングとデータ コンテキストを含むメニューと、一部のボタン クリック以外は空のコードの背後にあるメニュー
4 データを使用するメイン ウィンドウ <-- これは私の問題です
まず第一に、これは正しいアプローチですか、私が考えるべき別のことはありますか? 2 つのウィンドウにデータ コンテキストを実装できますか?
そこで、メインメニュー ウィンドウでコンテキストを設定します。
<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; }
}
}
この情報を別ウィンドウで呼び出せるようにしたい。しかし、新しいコンテキストを作成すると、プロパティ パスは確実に別の場所を指すようになりますか?