2

ビューを操作しているときに ViewModel にアクセスできません。

BankManagerApplicationという名前のプロジェクトがあります。その中に、新しい WPF アプリケーションに関連付けられたさまざまなファイルがあります。ModelViewModelViewの3 つの個別のフォルダーを作成しました。

現時点では、Model フォルダに次のフィールドを持つ UserModel クラスがあります。

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

内部にグリッドだけがある、View フォルダー内の空白のビュー。

<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-namespace:BankManagerApplication.ViewModel" に存在しません

私はWPFの学習を始めたばかりで、実際に始める前にこのエラーが私を悩ませています

4

1 に答える 1

1

UIElement ではないため、Grid コントロールに追加することはできません。ビューモデルは、ビューの 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>

于 2013-09-24T15:36:06.750 に答える