C# 如何在UWP中实现简单的ViewModel优先方法

C# 如何在UWP中实现简单的ViewModel优先方法,c#,wpf,mvvm,uwp,C#,Wpf,Mvvm,Uwp,我还没有真正找到我的问题的答案,所以我真的希望有人在我之前解决过类似的问题 我正在开发一个UWP应用程序,之前我在WPF中处理MVVM的东西已经有一年了,没有广泛使用的框架/库,只是掌握一些非常基本的东西。我已经意识到我不能在UWP中真正地重新创建我喜爱的模式,因为它有比WPF更严格的规则 我在WPF中所做的: 我拥有的是一些带有INPC和属性等的vm,以及带有绑定的视图,这些都是常见的东西。它通过DataTemplate的魔力和一个非常简单的方法结合在一起: public static

我还没有真正找到我的问题的答案,所以我真的希望有人在我之前解决过类似的问题

我正在开发一个UWP应用程序,之前我在WPF中处理MVVM的东西已经有一年了,没有广泛使用的框架/库,只是掌握一些非常基本的东西。我已经意识到我不能在UWP中真正地重新创建我喜爱的模式,因为它有比WPF更严格的规则

我在WPF中所做的: 我拥有的是一些带有INPC和属性等的vm,以及带有绑定的视图,这些都是常见的东西。它通过DataTemplate的魔力和一个非常简单的方法结合在一起:

    public static void Show(this ViewModelBase vm)
    {
        CreateWindow(vm).Show();
    }

    private static Window CreateWindow(ViewModelBase vm)
    {
        return new Window
               {
                   Icon = Resources.app_icon.ToImageSource(),
                   Width = 500d,
                   Height = 320d,
                   Content = vm,
                   Title = vm.ToString()
               };
    }
在我的ResourceDictionary中,我为ViewModel类定义了所有模板,如下所示:

<DataTemplate DataType="{x:Type local:RandomViewModel}">
    <local:RandomView />
</DataTemplate>
UWP情况: 我从一个源自ContentControl的ViewModels开始,它作为一个原型工作,但很难看,并且严重违反了MVVM规则。 我切换到DataTemplate ResourceDictionary,它包含我在Build 2016上看到的底层静态类?会议,这让我了解了我目前的状态。DataTemplate现在必须有一个x:Key,这可以防止我让所有东西都松散耦合。当然,如果我显式地使用ContentTemplate的键,DataTemplate就可以工作,但这是我想要避免的

经过几个星期的思考和思考,我终于决定请别人至少给我一个如何处理这个问题的提示。 对于这个特定的应用程序,我真的不想走什么都做框架的道路。 我还想使用编译绑定,所以整个内容/数据上下文业务也不复存在了

是否有一个优雅、简单或明显的解决方案我错过了?如果有什么有用的建议,我真的很感激


编辑:我知道这个问题很模糊,如果我确切知道要问什么,我可能会继续在互联网上搜索/试图自己解决问题。我希望你不介意。

看起来你在寻找一个视图定位器和/或视图模型定位器,这里有一个好帖子,可能会让你去另一个像样的,更基本一点,尽管这两个链接都非常好,我可能会从这两个链接中吸取一些想法。这可能会让我再次继续使用我的应用程序。谢谢!这是一个好问题。不知道为什么会被否决。