質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MVVM

MVVM(Model View ViewModel)は構築上のデザインパターンで、表現ロジック(ViewModel)によってデータ(Model)からページ(View)を分離させます。

Q&A

解決済

1回答

4911閲覧

MVVM double値をTextBoxで入力する時の変換エラー検知

3939yoshi

総合スコア7

MVVM

MVVM(Model View ViewModel)は構築上のデザインパターンで、表現ロジック(ViewModel)によってデータ(Model)からページ(View)を分離させます。

0グッド

0クリップ

投稿2017/12/01 06:39

###前提・実現したいこと
Visual Stdio 2015 C# でWPFアプリケーションを作っています。
2つのTextBoxと2つButtonがあります。

###発生している問題・エラーメッセージ
たとえば TextBoxに数値でない'abc'などの文字列を入力した場合には、ViewModel側のsetが呼びだされない
ため OKボタンを無効にできない。
なにか適切な方法または考え方はないか。

エラーメッセージ

###該当のソースコード

// FooViewModel public double Val1 {get; set;} public double Val2 {get; set;} public ICommand OK{get; set;} public ICommand Cansel(get; set;}
<!-- Foo.xaml--> <UserControl> <StackPanel> <TextBox Text="{Binding Val1}"/> <TextBox Text="{Binding Val2}"/> <Button Content="OK" Command="{Binding OK}"> <Button Content="Cansel" Command="{Binding Cansel}"> </StackPanel> </UserControl>

###試したこと

###補足情報(言語/FW/ツール等のバージョンなど)
このとき TextBoxのValidationResultは次のメッセージを保持していた。
値'abc'を変換できませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Bind する相手方と型が違うと大概面倒なことになります。
TextBox の Text に Bind するのは string 型のプロパティがお勧めです。
Double を Bind する相手は、DoubleUpDownなど便利なものがあります。

投稿2017/12/01 10:38

hihijiji

総合スコア4150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

3939yoshi

2017/12/02 03:19

アップダウン付きが表示されているの見かけますが、少し便利なだけかと思っていました。 必須ですね(^^;)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問