相关疑难解决方法(0)

WPF MVVM从VIEW MODEL获取父级

在MVVM WPF应用程序中.

你如何设置第二个Windows父级ViewModel

例:

view1 - viewModel1

viewModel1的命令调用:

var view2 = new view2
Run Code Online (Sandbox Code Playgroud)

view2.Owner= <----这是问题所在.如何从这里获取view1作为所有者viewModel

view2.Show()
Run Code Online (Sandbox Code Playgroud)

编辑:

请参阅下面接受的答案,然后阅读以下编辑内容.

我正在使用MVVM灯 - > http://mvvmlight.codeplex.com/ (真棒顺便说一句)

烘焙消息传递系统非常棒.我现在正在从viewmodel向我的视图发送一条消息,告诉它显示另一个窗口.

对于消息我当前在主视图中使用带有switch语句的字符串来确定要打开的视图; 但是我可能会修改也是MVVM light toolkit一部分的令牌.

谢谢!

.net c# wpf mvvm mvvm-light

21
推荐指数
2
解决办法
2万
查看次数

MVVM Light&WPF - 将Window的多个实例绑定到ViewModel

我正在研究MVVM中的第一个项目,我选择使用MVVM Light Toolkit.我有一个GameViewModel在我的游戏主屏幕上处理业务.我需要找到如何在执行命令时将AdventurerView一个实例Adventurer作为参数打开一个新窗口(),绑定它AdventurerViewModel,并显示和返回数据.此窗口的实例将经常打开和关闭.我已经被困在这几天了,这让我发疯了.我想学习如何以MVVM友好的方式执行此操作,最好使用MVVM Light或纯XAML提供的工具.

我尝试过使用MVVM Light,ViewModelLocator但由于AdventurerView它是一个窗口,它将无法工作; 虽然程序仍在编译和运行,但它说"不能把窗口放在一个样式中".我可以改变一些东西让它起作用吗?或者是否有另一种方法在XAML中绑定它们?或完全是另一种方法?我真的很想能够继续前进.我也试过使用MVVM Light的信使无济于事(仍然没有解决View/ViewModel问题).

我只需要能够创建一个绑定的窗口AdventurerViewModel并显示/返回相应的数据.

AdventurerView.xaml目前处于默认状态,但我觉得如果我可以绑定可能有用的相应数据(DataContext).

AdventurerViewModel也很简单

class AdventurerViewModel : ViewModelBase
{
    #region Members

    private Adventurer _adv;

    #endregion

    #region Properties

    public Adventurer Adv
    {
        get { return _adv; }
        set { _adv = value; }
    }

    #endregion

    #region Construction

    public AdventurerViewModel(Adventurer adv)
    {
        this._adv = adv;
    }

    #endregion
}
Run Code Online (Sandbox Code Playgroud)

App.xaml底部有非工作的DataTemplate:

<Application StartupUri="MainWindow.xaml"
         xmlns:views="clr-namespace:AoW.Views"
         xmlns:vm="clr-namespace:AoW.ViewModels" 
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         x:Class="AoW.App" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         mc:Ignorable="d">

<Application.Resources>
    <vm:ViewModelLocator …
Run Code Online (Sandbox Code Playgroud)

c# wpf mvvm mvvm-light

6
推荐指数
1
解决办法
9629
查看次数

MVVM Light WPF打开新窗口

我是MVVM的新手并且使用MVVM Light学习它.

我在wpf中有一个带登录窗口的应用程序.当用户输入正确的凭据时,登录窗口应该关闭,并且应该打开一个新的MainWindow.登录部分已经正常工作,但如何打开新窗口并关闭当前(login.xaml)?

还必须为这个新的MainWindow提供一些参数.

任何人都可以把我放在正确的方向或提供一些信息吗?

wpf mvvm-light

3
推荐指数
1
解决办法
4019
查看次数

标签 统计

mvvm-light ×3

wpf ×3

c# ×2

mvvm ×2

.net ×1