XAML(WPF)属性没有可访问的setter来布尔值

问题描述:

可能只是一些愚蠢的错误,但我似乎无法找到它。问题是:编译器说属性“IsMarried”没有可访问的setter,我不知道“accessible”意味着什么,因为那里肯定有一个setter。XAML(WPF)属性没有可访问的setter来布尔值

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"; 
       } 
      } 

     } 
    ... 

只是为了澄清,我不能看到这个二传手从其他的不同之处现有setter,它不会产生错误: 也CustomerViewModel.cs:

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

看起来很好,清洁和重建?我注意到我的项目中的XAML有时会有点滑稽 –

+0

@AppPack,不幸的是,没有帮助。 –

我知道这是一个愚蠢的错误。问题是这个字符串在XAML:

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

我从一些教程中得到它,只是盲目地复制。删除了“; assembly = BindingTests”部分,现在一切都很好。 现在XAML看起来像这样:

xmlns:cnsmr="clr-namespace:BindingTests"