从文本框中删除时检测属性更改

时间:2013-09-09 08:45:33

标签: wpf vb.net xaml mvvm

我在MVVM模式下使用WPF和VB.Net。

我正在尝试编辑数据库中的记录提取。我的文本框在viewmodel中的属性中绑定,当我突出显示文本然后从键盘按退格键时,我注意到它没有检测到文本框中的值已被删除。我忘记了什么吗?

这是我的XAML:

 <TextBox Text="{Binding TimeTaken,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay,ValidatesOnDataErrors=True}" TextChanged="txt_TextChanged" Style="{StaticResource DialogTextBox}"  Height="23" Width="100" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="2"/>

这是我在ViewModel中的属性:

    Public Property TimeTaken As Single
    Get
        Return Me.GetPropertyValue(Reflection.MethodBase.GetCurrentMethod.Name)
    End Get
    Set(ByVal value As Single)
        Me.SetPropertyValue(Reflection.MethodBase.GetCurrentMethod.Name, value)
    End Set
End Property

我只在使用高亮显示删除时遇到它。但是当我删除每个文本时,将设置更改。

1 个答案:

答案 0 :(得分:1)

因为您绑定到Text(String)&lt; - &gt;单身, 它处理文本和Casts(Single)的输入,当给出empty.string时,cast会返回任何内容。 您可以使用转换器..但真正的问题是为什么不绑定到String类型属性,因为最后您在setter中设置了某个对象的Name属性。