@moisaeiyo (田中 誠)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

MVVMでTextChangeを使いたいです。

解決したいこと

MVVMで画面を実装しているのですが、TextChangedをコードビハインドではない方法でViewModelのメソッド又はコマンドを紐づける方法はありますか?
※ソースは業務の関係上見せることができません。大変申し訳ございません。

ここに問題・エラーに対して試したことを記載してください。

behaeviorをつかってコマンドを紐づけようとしたのですがうまく行きません。ただ、boolをtrueにしたいだけなのですが、、、。なんでもいいので何かヒントをくださると幸いです。初歩的な質問で申し訳ありません。

0 likes

2Answer

MVVCを捨てて一部MVCで開発したい
その理由は使い方がわからないから
なんかヒントをといいつつコードは一切かけません
という人に対してできるアドバイスは
「MVVMを正しく理解しましょう」
だと思います。

・MS公式
https://learn.microsoft.com/ja-jp/dotnet/architecture/maui/mvvm

・世界で一番短いサンプルで覚えるMVVM入門
https://resanaplaza.com/%E4%B8%96%E7%95%8C%E3%81%A7%E4%B8%80%E7%95%AA%E7%9F%AD%E3%81%84%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%A7%E8%A6%9A%E3%81%88%E3%82%8Bmvvm%E5%85%A5%E9%96%80/

1Like

Bindingが出来ないイベントは、素直に、Viewのコードビハインドでキャッチし、引数と一緒に処理をViewModelに渡すのが良いです。
これも、MVVMの考え方に合致します。→ ViewModelは、Viewを知りません。
Modelで処理するのが良いなら、さらに、ViewModelから、Modelに処理を渡します。

        private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
        {
           var text = ((TextBox)sender).Text;
           viewModel.TextChanged(text);
        }

Viewの処理をコードビハインドで行うのは、XAMLでできない処理をC#でするだけの話です。
MVVMの考え方はいろいろあり、コードビハインドを避ける考え方もありますが、WPFで、コードビハインドを避けて複雑な処理を行うのは困難です。

1Like

Your answer might help someone💌