【问题标题】:WPF Textbox Text UpdateWPF 文本框文本更新
【发布时间】:2017-01-05 21:43:22
【问题描述】:

(我知道有人对此提出了问题,但正如您在我的问题中看到的那样,我想我尝试了解决方案但没有成功)。

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

视图模型中的代码:

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 首次初始化时,文本框会填充“原始值”。但是当我更改框中的值时(即使我失去了对它的关注),该字段也没有更新(我可以说是因为首先没有调用 Method,而且当我使用调试器时,我可以看到值没有改变)。

我做错了什么?

编辑:我忘了提到上下文是在控制器中设置的,并且显然正在工作,因为正如我所说,绑定以一种方式工作。

【问题讨论】:

    标签: c# wpf xaml


    【解决方案1】:

    你的问题可能在这里:

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

    你的设置器是private,删除private,它应该可以工作。

    【讨论】:

    • 我希望你有一个美好的一天,因为你刚刚救了我的
    • 感谢您并乐于提供帮助! :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    相关资源
    最近更新 更多