2

我在这里问了一个奇怪的问题,我理解。但是我遇到了一个场景,有一个“弹出到新窗口”功能可能很酷。但是那个时候用户与之交互的 UI 在技术上是一个 DataTemplate,只是我使用了一个 UserControl 作为模板。

我想做的只是将该 UserControl 弹出到一个新窗口中(而不创建一个新窗口)。但是,如果创建了一个新 UI 并且不太麻烦,那么绑定规则无论如何都应该创建一个相同的界面。

我的第一个想法是简单地将项目从视图模型的集合中取出并将其插入新的集合中,这就是我认为将创建一个新 UI 的地方,第一个问题是我现在是否必须编写一个窗口管理器也?

如果可能的话,看看关于如何处理这种情况的一些意见和想法。

PS。如果可能的话,我真的很想避免挖掘可视化树,但我并不反对编写附加行为等来做到这一点。我只是不确定从哪里开始,什么是“最好的”方法,谷歌没有提供任何与我的需求相关的东西,哈哈。

谢谢。

4

1 回答 1

0

我经常将 XAML 的部分从较大的控件移到较小的控件中,它与将控件移到另一个窗口具有相同的基本要求。只要DataContext窗口的 是正确的,那么控件中的绑定应该仍然有效。

你是不是想多了?

using System.Windows;

namespace WpfApplication1
{
    public partial class MyWindow : Window
    {
        // private, See Execute() instead
        MyWindow() {
            InitializeComponent();
        }

        static public void Execute(MyViewModel vm)
        {
            MyWindow Window = new MyWindow() {
                DataContext = vm
            };

            Window.ShowDialog();
        }
    }
}
于 2013-01-21T08:59:49.820 回答