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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

0回答

495閲覧

WPFで作成したコントロールを他クラスから変更したい

yukke_33333

総合スコア0

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

1グッド

0クリップ

投稿2021/11/23 00:53

編集2021/11/23 01:22

前提・実現したいこと

WPFで機器との通信可否をチェックするソフトを作成しております。
機器との通信結果を画面上に表示するようにしたいです。

各通信機器毎に、MainWindow.csで動的にTextBoxを作成しております。作成したTextBoxはHandleと一緒に共通変数のListに入れています。
他クラスで通信結果が出ましたら、共通変数のList内から同じhandleを見つけて、その中にあるtextBoxをいじっております。

発生している問題・エラーメッセージ

他クラスで出た通信結果をMainWindowのテキストブロックに反映しようとしたのですが、表示されません。

c#

1〈他クラスから〉 2var eventMc = mcList.Where(w => w.handle == this.handle).FirstOrDefault; 3eventMc.textBox = 通信結果;

また、他クラスからMainWindowクラス内のテキストブロック書き換える関数を呼び出しても同じく表示されませんでした。

c#

1〈他クラスから〉 2var eventMc = mcList.Where(w => w.handle == this.handle).FirstOrDefault; 3WriteTextBox(eventMc, 通信結果); 4 5〈MainWindow.cs〉 6public static void WriteTextBox(MC eventMc, string text) 7{ 8eventMc.textBox = 通信結果; 9

補足情報(FW/ツールのバージョンなど)

・VisualStudio 2019

sheephuman👍を押しています

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

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

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

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

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

Zuishin

2021/11/23 00:55

恐らく、インスタンスを新規作成してるから。
yukke_33333

2021/11/23 01:15

回答ありがとうございます。 至急解決しないといけない案件で、無知なままでの質問申し訳ございません。 上記の質問誤った書き方をしていました。 訂正致します。 ---------------------- 各通信機器毎に、MainWindow.csで動的にTextBoxを作成しております。作成したTextBoxはHandleと一緒に共通変数のListに入れています。 他クラスで通信結果が出ましたら、共通変数のList内から同じhandleを見つけて、その中にあるtextBoxをいじっております。 このような場合でもtextboxのインスタンスを新規作成しているのでしょうか? var eventMc = mcList.Where(w => w.handle == this.handle).FirstOrDefault; eventMc.textBox = 通信結果;
Zuishin

2021/11/23 01:35

> w.handle == this.handle この時点で他のクラスからじゃないですよね。
TN8001

2021/11/23 10:09

なんだかさっぱりわかりませんが、やりたいことって↓とかじゃないんですか? eventMc.textBox.Text = "なんかえらー";
sheephuman

2023/11/05 04:48

表示されないという事は、Null文字”” か イベント処理自体が発火してないかのどちらかしかないと思うのですが。 >他クラスからMainWindowクラス内のテキストブロック書き換える関数を呼び出し とあるので、呼び出し自体は出来てるのではないかと思います。私も同じような事してるんで。 インスタンスをMainwindow.cs内で作り、他クラスで参照するとかは Mainwindow main; OtheerClass other = New OtherClass.What'sUpMethod(this); みたいな感じで簡単に渡せますから。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問