2017-04-08 35 views
0

おそらくちょっとばかりの間違いがありますが、見つけられないようです。問題は:コンパイラはと言っています。プロパティ "IsMarried"はアクセス可能なセッターを持っていません。と私は "アクセス可能"という意味が分かりません。XAML(WPF)プロパティには、bool値へのアクセス可能なセッターがありません

XAML:

<Window x:Class="BindingTests.MainWindow" 
... 
    xmlns:cnsmr="clr-namespace:BindingTests;assembly=BindingTests"> 

<Window.Resources> 
    <cnsmr:CustomerViewModel x:Key="CustomerViewModel" ... IsMarried="true"/> 
</Window.Resources> 

Customer.cs:

namespace BindingTests 
{ 
    class Customer 
    { 
     ... 
     public string Married { get; set; } 
     ... 
    } 
} 

CustomerViewModel.cs

namespace BindingTests 
{ 
    class CustomerViewModel 
    { 
     private Customer obj = new Customer(); 
     ... 
     public bool IsMarried 
     { 
      get 
      { 
       if (obj.Married == "Married") 
       { 
        return true; 
       } 
       else 
       { 
        return false; 
       } 
      } 
      set 
      { 
       if (value) 
       { 
        obj.Married = "Married"; 
       } 
       else 
       { 
        obj.Married = "Not Married"; 
       } 
      } 

     } 
    ... 

だけ明確にする、私はこのセッターは、既存の他のとどう違うのかを見ることができませんエラーが発生しないセッター: CustomerViewModel.cs:

public string TxtCustomerName 
     { 
      get { return obj.CustomerName; } 
      set { obj.CustomerName = value; } 
     } 
+0

きれいに見える、きれいで再構築しますか?私は自分のプロジェクトでXAMLがちょっと面白くなることに気付いた –

+0

@AppPack、残念ながら、助けにはならなかった。 –

答えて

0

愚かな間違いだった。問題はXAMLのこの文字列でした:

xmlns:cnsmr="clr-namespace:BindingTests;assembly=BindingTests" 

私はいくつかのチュートリアルから得て、ちょうど盲目的にコピーしました。 "; assembly = BindingTests"の部分を削除しました。 XAMLは次のようになります。

xmlns:cnsmr="clr-namespace:BindingTests" 
関連する問題