为啥我的属性在 PropertyChange 之后没有改变? [关闭]

Posted

技术标签:

【中文标题】为啥我的属性在 PropertyChange 之后没有改变? [关闭]【英文标题】:Why does my Property not Change after PropertyChange? [closed]为什么我的属性在 PropertyChange 之后没有改变? [关闭] 【发布时间】:2022-01-06 08:02:48 【问题描述】:

所以我有一个项目,其中有一个 Web 浏览器元素,而进入该浏览器元素的东西是 html。这是可行的,但我还有一个文本框,我可以在其中编写数据和数据应用程序。我是这样试的。

在我的课堂上,我得到了这个属性,它有一个虚拟文本。

private  string _textboxTop1;
    public  string TextboxTop13
    
        get 
        
            _textboxTop1 = "Fujitsu";
            return _textboxTop1;
        
        set
        
            _textboxTop1 = value;
            NotifyPropertyChanged(nameof(TextboxTop13));
        
    

然后我得到了这个 ViewModel,其中我有这个属性。这个属性在最后给我的 Web 浏览器提供了完整的 HTML。我用这个从我的其他班级获得了数据:

 Class.Top1 test = new Class.Top1();

这就是属性:

 private  string _html;
    public  string html1
    
        get 
        
            return _html  + test.TextboxTop13;
        
        set
        
            _html= value;
            NotifyPropertyChanged(nameof(_html));
        
    

在我的网络浏览器上:

    <WebBrowser Grid.Row="1" Grid.Column="1" local:BrowserBehavior.Html="Binding html1, Mode=TwoWay" />

我一开始尝试像这样添加新数据,但是当我创建断点时,值甚至发生了变化:

  private void TextBox_KeyDown(object sender, KeyEventArgs e)
    
       test.TextboxTop13 = "HHHHHHHHHHHHHHHHHHHHHHHHH";
        
    

【问题讨论】:

在 getter 中使用 _textboxTop1 = "Fujitsu"; 时,TextboxTop13 属性显然不会返回除 "Fujitsu" 之外的任何内容,无论您尝试设置什么值。不清楚你在这里问什么。 我试图在我的 Web 浏览器元素中加载预览 HTML 数据并使用文本框更改值。预览加载正在工作,但我无法将预览数据更改为我的 TextBox 的值。 不知道你想说什么。但是,赋值 _textboxTop1 = "Fujitsu"; 不属于属性 getter。您可能想要初始化属性的支持字段,例如 private string _textboxTop1 = "Fujitsu"; 为了简化这一点,我只想在 TextBox 中写入内容时更改此属性的数据。 在 Backing 字段中添加后,BreakPoint 中的属性正在更改,但使用后面代码中更改但 ViewModel 中未更改的新数据更改属性 Test_Textbox13 的数据 【参考方案1】:

从属性的getter中移动字符串“Fujitsu”,简单地返回_textboxTop1的当前值:

private string _textboxTop1 = "Fujitsu";
public string TextboxTop13

    get
    
        return _textboxTop1;
    
    set
    
        _textboxTop1 = value;
        NotifyPropertyChanged(nameof(TextboxTop13));
    

那么您应该能够将TextboxTop13 属性设置为任何string 值。

【讨论】:

就是这样,我已经有了,但它不会工作

以上是关于为啥我的属性在 PropertyChange 之后没有改变? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

input 输入框 propertychange

input 输入框 propertychange

主干监听属性更改

React-输入事件

使用绑定事件“input propertychange”防止在 TextArea 上写入

为啥在弗雷德弗林斯顿之后警报显示未定义? ES6 中的“const”都有哪些属性? [复制]