1

MVVMパターンでWPFとVB.Netを使用しています。

データベースから取得したレコードを編集しようとしています。テキストを強調表示してキーボードからバックスペースを押すと、ビューモデルのプロパティにテキストボックスがバインドされます。テキストボックスの値が削除されたことを検出しないことに気付きました。私は何かを忘れていますか?

ここに私の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) を処理します。空の.string を指定すると、キャストは何も返しません。コンバーターを使用できます..しかし、実際の問題は、最後にセッターでオブジェクトの Name プロパティを設定するため、なぜ String タイプのプロパティにバインドしないのかということです。

于 2013-09-09T09:06:47.107 に答える