Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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# WPF文本框文本更新_C#_Wpf_Xaml - Fatal编程技术网

C# WPF文本框文本更新

C# WPF文本框文本更新,c#,wpf,xaml,C#,Wpf,Xaml,(我知道有人就此提出问题,但正如你在我的问题中所看到的,我认为我尝试了解决方案,但没有成功) 简单地说,我正在尝试将文本框中的文本与视图模型绑定 视图模型中的代码: public class MainClass :INotifyPropertyChanged { ... public event PropertyChangedEventHandler PropertyChanged;       protected void onPropertyChanged ​(string pro

(我知道有人就此提出问题,但正如你在我的问题中所看到的,我认为我尝试了解决方案,但没有成功)

简单地说,我正在尝试将文本框中的文本与视图模型绑定

视图模型中的代码:

public class MainClass :INotifyPropertyChanged
{
 ... 
public event PropertyChangedEventHandler PropertyChanged;         
protected void onPropertyChanged ​(string propertyName)   
{
    var handler = PropertyChanged;
    if (handler != null) {
        handler(this,  new PropertyChangedEventArgs(propertyName));
    } 
}
private string _Stuff ="Original Value";
public string Stuff {
    get { return _Stuff;  }
    private set {
        if (value != _Stuff)
        {
            _Stuff = value;
            Method();
            OnPropertyChanged("Stuff");
        }
    }
}
}
还有XAML

<TextBox Text="{Binding Stuff,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
</TextBox>

现在,绑定的工作方式有一种,即当XAML首次初始化时,文本框中填充“原始值”。但是,当我更改框中的值时(即使我失去了对它的关注),字段也不会更新(我可以看出,首先,方法没有被调用,而且当我使用调试器时,我可以看到值没有更改)

我做错了什么

编辑:我忘了提到上下文是在控制器中设置的,而且显然正在工作,因为正如我所说的,绑定是单向工作的。
您的问题可能在这里:

public string Stuff {
    get { return _Stuff;  }
    private set {
        if (value != _Stuff)
        {
            _Stuff = value;
            Method();
            OnPropertyChanged("Stuff");
        }
    }
}

您的setter是
private
,请删除
private
,它应该可以工作。

您的问题可能在这里:

public string Stuff {
    get { return _Stuff;  }
    private set {
        if (value != _Stuff)
        {
            _Stuff = value;
            Method();
            OnPropertyChanged("Stuff");
        }
    }
}

您的setter是
private
,请删除
private
,它应该会工作。

我希望您有一个美好的一天,因为您刚刚保存了我的文件。谢谢,很高兴能提供帮助!:-)我希望你有一个美好的一天,因为你刚刚救了我谢谢你,很高兴能帮助我!:-)