【发布时间】:2010-10-23 01:03:21
【问题描述】:
我有一个 TextBox 绑定到 ViewModel 的 Text 属性,设置如下:
Xaml
<TextBox Text="{Binding Text}"/>
C#
public class ViewModel : INotifyPropertyChanged
{
public string Text
{
get
{
return m_Text;
}
set
{
if (String.Equals(m_Text, value))
{
return;
}
m_Text = value.ToLower();
RaisePropertyChanged("Text");
}
}
// Snip
}
当我在 TextBox 中输入一些内容时,它成功地设置了 ViewModel 上的 Text 属性。问题是 WPF 忽略了它自己的更新引发的属性更改事件。这会导致用户看不到他们键入的转换为小写的文本。
如何更改此行为以使 TextBox 更新为小写文本?
注意:这只是我用来说明 WPF 忽略事件问题的一个示例。我对将字符串转换为小写或 String.Equals(string, string) 的任何问题并不感兴趣。
【问题讨论】:
标签: wpf data-binding