如何将对话框窗口中的DataContext设置为其父项';的DataContext

本文关键字:DataContext 设置 窗口 对话框 | 更新日期: 2023-09-27 18:26:50

我创建了一个新窗口,然后使用以下代码调用它:

NieuwSimulatie NiewSimulatieWindow = new NieuwSimulatie()
{
    Owner = this
};
bool? SimulatieAangemaakt = NiewSimulatieWindow.ShowDialog();

在窗口"NieuwSimulatie"中,我希望拥有与主窗口中相同的DataContext,或者我希望使用RelativeSource将控件直接绑定到DataContext,我尝试过:

<Controls:SplitButton x:Name="ProjectNaam"
                      DisplayMemberPath="ProjectNaam"
                      ItemsSource="{Binding Static.Projecten, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Controls:MetroWindow}}"/>

但这行不通。

请帮助我修复DataBinding,或者帮助我将窗口的DataContext设置为MainWindow后面的DataContext。

如何将对话框窗口中的DataContext设置为其父项';的DataContext

我已经从创建窗口的位置访问了DataContext,怎么样:

NieuwSimulatie NiewSimulatieWindow = new NieuwSimulatie()
{
    Owner = this,
    DataContext = YourDataContext;
};
bool? SimulatieAangemaakt = NiewSimulatieWindow.ShowDialog();

要完成您的要求,通常是在创建新窗口时完成的,因为它们是两个窗口,所以最好传入上下文…如下:

NieuwSimulatie MyNewWindow = new NieuwSimulatie(DataContent);
MyNewWindow.Show();

我认为你需要这样做:

NieuwSimulatie NiewSimulatieWindow = new NieuwSimulatie()
NiewSimulatieWindow.DataContext=this.DataContext;
bool? SimulatieAangemaakt = NiewSimulatieWindow.ShowDialog();