1

我在 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

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

4

1 回答 1

1

因为您绑定到 Text(String) <-> Single ,它处理文本的输入和对它们进行强制转换 (Single) ,当给定一个 empty.string 时,强制转换不返回任何内容。您可以使用转换器 .. 但真正的问题是您为什么不绑定到 String 类型属性,因为最后您在 setter 中设置了某个对象的 Name 属性。

于 2013-09-09T09:06:47.107 回答