2017-01-11 20 views
0

を作ります私のエラー:は、私はいくつかの研究の後、私は次のコードを持って、初めてのviewmodelを作っていますのviewmodelエラー

Type or namespace couldn't be found 

最初の年生としてビューモデルを作成するのはかなり難しいこれは私のモデルクラスの1つです ::;

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace HotelWPF 
{ 
    public class Reservation 
    { 
     private string SecretaryName; 
     private int RoomNumber; 
     private string ReservationType; 
     private DateTime ReservationDate; 

     public string SecretaryName1 
     { 
      get 
      { 
       return SecretaryName; 
      } 

      set 
      { 
       SecretaryName = value; 
      } 
     } 

     public int RoomNumber1 
     { 
      get 
      { 
       return RoomNumber; 
      } 

      set 
      { 
       RoomNumber = value; 
      } 
     } 

     public string ReservationType1 
     { 
      get 
      { 
       return ReservationType; 
      } 

      set 
      { 
       ReservationType = value; 
      } 
     } 

     public DateTime ReservationDate1 
     { 
      get 
      { 
       return ReservationDate; 
      } 

      set 
      { 
       ReservationDate = value; 
      } 
     } 
    } 
} 

答えて

3

あなたが実際にINotifyPropertyChangedを実装していませんでした

編集を理解されるであろう

ReservationVM : INotifyPropertyChanged 

そして今、それはその約束にあなたを保持して:あなたはちょうどあなたがここにクラス宣言でしまうコンパイラを約束しました。この特定のインターフェイスを実装するには、というビューモデルクラスにPropertyChangedイベントを実装するだけです。それは簡単ですが、それを定義するこの行を追加してください:

public event PropertyChangedEventHandler PropertyChanged; 

Visual Studioはあなたのためのインターフェイスも実装します。上にあるクラス宣言のインターフェース名を右クリックし、コンテキストメニューから "Implement Interface"を選択します(VSバージョンによっては、代わりに "クイックアクションとリファクタリング"の下にあります)。あなたは "明示的に"、単に普通の "実装する"だけでは実装したくありません。

これがあると、CallerMemberNameAttributeの名前空間が必要です。

は、この行を追加します:

using System.Runtime.CompilerServices; 

...ファイルの先頭にそれはあまりにも速い一つです。

もう1つは、プロパティの名前を付けることです。それは何も破壊するつもりはありませんが、あなたが思いついた公的/私的な命名規則は良い考えではありません。これは、より一般的な慣例である:

private string _secretaryName; 
    public string SecretaryName 
    { 
     get 
     { 
      return _secretaryName; 
     } 

     set 
     { 
      SetProperty(ref _secretaryName, value); 
     } 
    } 
+0

viewmodelまたはモデルクラスに?@Gigitex Viewmodel。 – Gigitex

+0

INOTifyPropertyChangedを実装しています –

+0

まだエラーが発生しています – Gigitex

2

PropertyChangedINotifyPropertyChangedで定義されてする必要があるイベントです。 最も簡単な方法は、コード内にINotifyPropertyChangedの入力カーソルを置き、Ctrl+.を押すことによって、 "Implementing interface"の提案を使用することです。マウスの上にマウスを置いて表示される電球をクリックすることもできます。

またはちょうどあなたのビューモデルに次の行を追加します:あなたはCallerMemberNameの名前空間を追加していないので、

public event PropertyChangedEventHandler PropertyChanged; 

あなたの他のエラーがあります。上記と同じ方法で「使用する」提案から取得するか、ビューモデルファイルの先頭に次の行を追加することができます。

using System.Runtime.CompilerServices; 
関連する問題