相关疑难解决方法(0)

如何使用DataContext属性在XAML中的窗口上设置ViewModel?

这个问题几乎说明了一切.

我有一个窗口,并尝试使用完整的命名空间将DataContext设置为ViewModel,但我似乎做错了.

<Window x:Class="BuildAssistantUI.BuildAssistantWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    DataContext="BuildAssistantUI.ViewModels.MainViewModel">
Run Code Online (Sandbox Code Playgroud)

.net wpf xaml mvvm

90
推荐指数
4
解决办法
13万
查看次数

MVVMLight - 如何在View中获取对ViewModel的引用?

我正在构建一个Windows Phone 7应用程序,我需要在我的视图中引用我的ViewModel,以便我可以从我的事件处理程序设置属性.唯一的问题是我无法获得该引用.

我做了什么;

我有一个ViewModelLocator(删除了无关的位):

static ViewModelLocator()
{
    ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

    SimpleIoc.Default.Register<TunerViewModel>();
}

[SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Justification = "This non-static member is needed for data binding purposes.")]
public TunerViewModel Tuner
{
    get { return ServiceLocator.Current.GetInstance<TunerViewModel>(); }
}
Run Code Online (Sandbox Code Playgroud)

和视图(XAML):

DataContext="{Binding Tuner, Source={StaticResource Locator}}">
Run Code Online (Sandbox Code Playgroud)

和视图的代码隐藏:

public partial class Tuner : PhoneApplicationPage
{
    private readonly TunerViewModel _viewModel;

    public Tuner()
    {
        _viewModel = DataContext as TunerViewModel;

        InitializeComponent();
    }
Run Code Online (Sandbox Code Playgroud)

我发现这个链接MVVM View对ViewModel的引用,其中DataContext被转换为ViewModel,所以我尝试了同样的,因为它看起来是一个很好的解决方案.但是,我的_viewModel字段在强制转换后为null.为什么这样,我该如何解决这个问题?我无法在Google/Stackoverflow上找到它

提前致谢 :)

silverlight mvvm windows-phone-7 mvvm-light

5
推荐指数
1
解决办法
6741
查看次数

MVVM - 退出确认

我正在尝试学习MVVM,但还有一些我还不了解的东西.

目前,我有这个事件处理程序:

private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
    if (MessageBox.Show("Are you sure you want to close this application?", "Close??", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
    {
        e.Cancel = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

很容易.但是,我想在此应用程序中应用MVVM模式.

我想知道,我是否应该将此逻辑放在ViewModel中而不是直接放在视图代码中?如果是这样,我该怎么做呢?

谢谢

c# wpf mvvm

5
推荐指数
1
解决办法
463
查看次数

标签 统计

mvvm ×3

wpf ×2

.net ×1

c# ×1

mvvm-light ×1

silverlight ×1

windows-phone-7 ×1

xaml ×1