如何在对话窗口中将DataContext设置为其父级的DataContext

时间:2014-10-17 13:21:38

标签: c# wpf data-binding

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

NieuwSimulatie NiewSimulatieWindow = new NieuwSimulatie()
{
    Owner = this
};

bool? SimulatieAangemaakt = NiewSimulatieWindow.ShowDialog();

在Window“NieuwSimulatie”中我想拥有与我的MainWindow相同的DataContext,或者我想使用RelativeSource I geuss将控件直接DataBind到DataContext,Ive尝试过:

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

但这不起作用。

请帮我修复我的DataBinding或帮我设置我的Window的DataContext到MainWindow后面的DataContext。

3 个答案:

答案 0 :(得分:1)

我可以从你创建窗口的位置访问你的DataContext,那是怎么回事:

NieuwSimulatie NiewSimulatieWindow = new NieuwSimulatie()
{
    Owner = this,
    DataContext = YourDataContext;
};

bool? SimulatieAangemaakt = NiewSimulatieWindow.ShowDialog();

答案 1 :(得分:0)

通常在创建新窗口时执行您所要求的操作,因为它们是两个Windows,因此最好传递上下文...像这样:

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

答案 2 :(得分:0)

我认为你需要这样做:

NieuwSimulatie NiewSimulatieWindow = new NieuwSimulatie()

NiewSimulatieWindow.DataContext=this.DataContext;

bool? SimulatieAangemaakt = NiewSimulatieWindow.ShowDialog();