gpt4 book ai didi

c# - UI 未针对 wpf TextBox 正确更新

转载 作者:太空宇宙 更新时间:2023-11-03 23:05:23 26 4
gpt4 key购买 nike

我有一个文本框。在set和get中我已经按照我的逻辑修改了文本框的值。但是 UI 没有关于修改的更新。

            <TextBox  
Width="185"
Name="TextBoxNumber"
VerticalAlignment="Center"
HorizontalAlignment="Left"
BorderThickness="0"
Margin="5, 4, 0, 2"
Text="{Binding Path=OmukText, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
</TextBox>

这里是设置和获取

    private string _omukText = string.Empty;
public string OmukText
{
get
{
return this._omukText;
}
set
{
if(value.Equals(" "))
{
_omukText = string.Empty;
}
if (value.Length > 4 && !value.Contains(" "))
{
this._omukText = value.Insert(4, " ");
}
else
{
this._omukText = value.Trim();
}
this.OnPropertyChanged("OmukText");
}
}

假设用户在TextBox中放置了一个空格,根据我的setter,该值应该设置为一个空字符串。但实际上,字符串保持原样,只有一个空格。该属性未在 UI 中更改。如何实时更改用户界面?我愿意接受其他选择,而不是这样做。

仅供引用 - 我正在使用 .NET 4.0

最佳答案

这实际上是一个错误,已在 .NET Framework 4.5 中修复。请在此处参阅 Matt 的回答以获取更多信息。

Bound WPF TextBox is not updating value when the bound property enforces some business rules

如果由于某些原因您无法升级到 4.5,您可能想尝试此处建议的解决方法:

WPF - MVVM - Textbox getting out of sync with viewmodel property

值得一提的是,.NET Framework 官方支持的最旧版本目前是 4.5.2,因此升级可能是个好主意:https://blogs.msdn.microsoft.com/dotnet/2015/12/09/support-ending-for-the-net-framework-4-4-5-and-4-5-1/

关于c# - UI 未针对 wpf TextBox 正确更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41413908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com