TextBox
のコードの実装がWPF
にあるのを見てきました。 MVVM
パターンでこれをどうやって行うのですか?MVVMパターンの数字のテキストボックス
答えて
正直なところ、MVVMと数値のテキストボックスには何がありますか?
新しいTextBoxまたはAttachedPropertyまたはビヘイビアを作成する数値テキストボックスが必要な場合。 Hereは、MaskedTextboxビヘイビアが意味することを確認するための例です。
あなたのMVVMパートへ私はあなたの入力が数字だけであることを検証したいと仮定します。 viewmodelにint型のプロパティがある場合、ビューにint型に変換可能な入力がある場合はバインディングが機能します。そうしないと、あなたのビューモデルに通知されません。
最初に、あなたのビューは数値入力(数値のテキストボックス)を受け取り、viewmodelプロパティはintであることができることを確認してください。
または2番目:viewmodelプロパティの型がtypeof stringで、IDataErrorInfoを使用して、入力が数値でないときにビューに通知させます。
まあ...数字のテキストボックスのテキストプロパティが変更されただけで、あなたのビューモデルに通知されたい場合。数値テキストボックスの.Textプロパティが依存関係プロパティでない場合、コーダをスラップします。
この1:http://wpftoolkit.codeplex.com/wikipage?title=DecimalUpDown&referringTitle=Home
私がお勧めすることができますし、経由でのviewmodelからそれにバインドすることができます:あなたは後ろのViewModelを望んでいないだろうMVVMの標準的な定義では
<!-- View: -->
<NumericTextBox Text="{Binding MyViewModelTextStringProperty}" />
//ViewModel:
public string MyViewModelTextStringProperty
{
get/set with NotifyPropertyChanged....
}
カスタムコントロール。 TextBoxコントロールを拡張し、数値入力のみが入力されていることを確認してください。数値入力を返すDependencyPropertyも追加する必要があります。
ViewModelは、そのコントロールがウィンドウまたはコンポジットコントロールで使用されるときに表示されます。 TextまたはNumeric DependencyPropertyをViewModelのパブリックプロパティにバインドします。
これをViewModelで実際にやりたければ、バインドされたプロパティを文字列にする必要があります。各キーストロークでバインディングが更新されるようにしてください(UpdateSourceTrigger
を使用)。
セッターでは、例外を発生させるか、数値以外の文字を切り捨てることで、数値以外の値を拒否します。後者のアプローチは、貼り付けられたテキストに数字と文字が混在していても数字だけを保持する必要があるコピー/貼り付け操作のために働く利点があります。
私は、数値プロパティを公開するだけの特殊なコントロールを使用する方がクリーンなアプローチであるという他の提案にも同意します。
ありがとう、
Eric。
WPFでは、TextBoxをDecimalプロパティまたはIntプロパティにバインドすると、そのintまたはdecimalのみが受け入れられます。そうでない場合、バインディングに適切な値を持たない赤い境界線が表示されます。数字の上向きテキストボックスについては、WPFツールキットですぐに利用できます。here
- 1. MVVMパターンのシリアライズ
- 2. MVVMパターンの認証
- 3. MVVMパターンとセミグローバルデータ
- 4. ASP.NET MVVMパターン
- 5. WPF MVVMパターンObservableCollection
- 6. WPF MVVMパターン
- 7. MVVMパターンのSilverlightの子ウィンドウ
- 8. QtQuickでのMVVMパターンの適用
- 9. MVVMパターンでのWPFデザインデータの使用
- 10. MVVMパターン、ViewModel DataContext質問
- 11. MVVMパターン(プリズム)とXamarinマップ
- 12. Caliburn.Micro、MVVMパターン:CanExecuteコマンドが
- 13. MVVMのユーザーコントロールにデータを渡すパターン
- 14. MVVMパターンのSQLiteからWPFへ
- 15. WPVMのMVVMパターンでTabcontrolを使用
- 16. 三角数字パターン
- 17. 数字のテキストボックスの角のフォーマット
- 18. MVVMパターンに従ってグリッドビューをソート
- 19. MVVMパターンでハイパーリンクを使用するセルテンプレート
- 20. MVVMパターンによる動的UI
- 21. MVVMパターン使用時にViewModelにアクセス
- 22. PySideを使用したMVVMパターン
- 23. MVVMパターンでDataGridを更新する
- 24. wpfアプリケーションでmvvmパターンを使用
- 25. wpf e-book pdf mvvmパターンを含む
- 26. MVVMパターンが壊れていますか?
- 27. ピラミッド数字のパターンの種類
- 28. wpf MVVMフォーカスカーソルをテキストボックスに移動
- 29. WPF MVVMオブジェクトをテキストボックスに挿入
- 30. ページナビゲーション既存のMVVMフレームワークを使用せずにMVVMパターンを使用
MVVMが含まれている理由は、プレビューキーイベントがコードの背後で使用されている実装がわかりました。私はちょうどそれらの答えを排除したい – katie77
@Blindmeis、私はその笑に翻訳を持つことができます –