Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XAML(WPF)属性没有可访问的bool值设置器_C#_Wpf_Xaml_Data Binding - Fatal编程技术网

C# XAML(WPF)属性没有可访问的bool值设置器

C# XAML(WPF)属性没有可访问的bool值设置器,c#,wpf,xaml,data-binding,C#,Wpf,Xaml,Data Binding,可能只是一些愚蠢的错误,但我似乎找不到。问题是:编译器说属性“IsMarried”没有可访问的setter,我不知道“可访问”是什么意思,因为那里肯定有一个setter XAML: <Window x:Class="BindingTests.MainWindow" ... xmlns:cnsmr="clr-namespace:BindingTests;assembly=BindingTests"> <Window.Resources> <cnsmr

可能只是一些愚蠢的错误,但我似乎找不到。问题是:编译器说属性“IsMarried”没有可访问的setter,我不知道“可访问”是什么意思,因为那里肯定有一个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>
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与另一个现有setter有何不同,后者不会出现错误: 另外,CustomerViewModel.cs:

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

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

xmlns:cnsmr="clr-namespace:BindingTests;assembly=BindingTests"
我从一些教程中得到的,只是盲目地复制。删除了“assembly=BindingTests”部分,现在一切正常。 现在XAML看起来像这样:

xmlns:cnsmr="clr-namespace:BindingTests"

我觉得很好,干净又重建?我注意到我的项目中的XAML有时会有点过时funny@AppPack,不幸的是,没有帮助。
xmlns:cnsmr="clr-namespace:BindingTests"