为啥我的属性在 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 之后没有改变? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章