2013-09-24 62 views
2

我在使用我的視圖時無法訪問我的ViewModel。在MVVM WPF應用程序中使用本地ViewModel

我有一個項目名爲BankManagerApplication。在那裏我有與新的WPF應用程序相關的各種文件。我創建了三個獨立的文件夾模型,ViewModel查看

目前,Model文件夾中有一個UserModel類,其中包含以下字段;

namespace BankManagerApplication.Model 
{ 
    public class UserModel 
    { 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
     public double AccountBallance { get; set; } 
    } 
} 

在視圖文件夾中只有一個網格內的空白視圖;

<Window x:Class="BankManagerApplication.View.MainWindowView" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindowView" Height="300" Width="300"> 
    <Grid> 
    </Grid> 
</Window> 

並且在ViewModel文件夾中還有一個空白的ViewModel;

namespace BankManagerApplication.ViewModel 
{ 
    public class MainWindowViewModel 
    { 
    } 
} 

當我嘗試引用我的XAML中的ViewModel像這樣;

<Window x:Class="BankManagerApplication.View.MainWindowView" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindowView" Height="300" Width="300" 
     xmlns:viewmodel="clr-namespace:BankManagerApplication.ViewModel"> 
    <Grid> 
     <viewmodel:MainWindowViewModel></viewmodel:MainWindowViewModel> 
    </Grid> 
</Window> 

我得到的錯誤

名稱 'MainWindowViewModel沒有命名空間中存在 「CLR的命名空間:BankManagerApplication.ViewModel'

我纔剛剛開始學習WPF並且這個錯誤在我真正開始之前就把我拋棄了

+1

已建立的包括視圖模型還沒有這個項目? – Dutts

+0

通常,ViewModel將被分配給常規視圖控件的數據源(例如窗口,網格或其他控件)。在視圖的XAML中「新增」一個視圖模型是非常不尋常的。 – JDB

+1

此外,您不能將該類添加到網格。它不允許作爲網格的孩子。 – dowhilefor

回答

1

你不能將它添加到網格控件,因爲它不是一個UIElement。您的視圖模型將視圖的DataContext的:

<Window x:Class="BankManagerApplication.View.MainWindowView" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindowView" Height="300" Width="300" 
    xmlns:viewmodel="clr-namespace:BankManagerApplication.ViewModel"> 
    <Window.DataContext> 
     <viewmodel:MainWindowViewModel></viewmodel:MainWindowViewModel> 
    </Window.DataContext> 
    <Grid> 

    </Grid> 

+0

完美,謝謝。 – Win

相關問題