[解決済み] WPF: ダイアログ/プロンプトの作成
2023-03-22 20:28:27
質問
ユーザー入力用のテキストボックスを含むダイアログ/プロンプトを作成する必要があります。私の問題は、ダイアログを確認した後にテキストを取得する方法です。通常、私はこのためにクラスを作り、プロパティにテキストを保存します。しかし、私はXAMLを使用してダイアログを設計したいのです。そのため、XAMLコードを拡張して、テキストボックスの内容をプロパティに保存する必要があります - しかし、それは純粋なXAMLでは不可能だと思います。私がやりたいことを実現するための最良の方法は何でしょうか?XAMLから定義することができ、かつ、入力を返すことができるダイアログを構築するにはどうしたらよいでしょうか?どんなヒントでもありがとうございます。
どのように解決するのですか?
責任ある回答は、ダイアログ用の ViewModel を構築し、TextBox で双方向のデータバインディングを使用して、ViewModel がいくつかの "ResponseText"property またはその他を持つようにすることを私が提案することです。これは十分に簡単なことですが、おそらく過剰な作業です。
実用的な答えは、テキスト ボックスに x:Name を与え、それがメンバーになるようにし、このようにクラスの背後にあるコードのプロパティとしてテキストを公開することでしょう。
<!-- Incredibly simplified XAML -->
<Window x:Class="MyDialog">
<StackPanel>
<TextBlock Text="Enter some text" />
<TextBox x:Name="ResponseTextBox" />
<Button Content="OK" Click="OKButton_Click" />
</StackPanel>
</Window>
そして、後ろのコードで...
partial class MyDialog : Window {
public MyDialog() {
InitializeComponent();
}
public string ResponseText {
get { return ResponseTextBox.Text; }
set { ResponseTextBox.Text = value; }
}
private void OKButton_Click(object sender, System.Windows.RoutedEventArgs e)
{
DialogResult = true;
}
}
次に使用するために...
var dialog = new MyDialog();
if (dialog.ShowDialog() == true) {
MessageBox.Show("You said: " + dialog.ResponseText);
}
関連
-
[解決済み] Ok "と "Cancel "オプションのあるダイアログを作成する方法
-
[解決済み] コマンドプロンプトのコマンドを実行する
-
[解決済み] WPFの場合、x:Name属性とName属性の違いは何ですか?
-
[解決済み] RelativeSourceでWPFバインディングを使用するにはどうしたらいいですか?
-
[解決済み] WPFのStaticResourceとDynamicResourceの違いは何ですか?
-
[解決済み] WPFでデータトリガーに複数の条件を指定するには?
-
[解決済み] DataTrigger where value is NOT null?
-
[解決済み] Windows フォームでのプロンプトダイアログ
-
[解決済み] WPF ToolBar: グリップとオーバーフローを取り除く方法
-
[解決済み] xaml wpfでテキストボックスにフォーカスを設定する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015の追加デバッグオプションの無効化
-
[解決済み] XAMLで複数のバリューコンバータを連結する方法はありますか?
-
[解決済み] ItemsControlの仮想化?
-
[解決済み] WPFでトグルボタンのグループをラジオボタンのように動作させるには?
-
[解決済み] WPFとSilverlightの比較[重複]。
-
[解決済み] WPFのデータグリッドでセルの編集を無効にするには?
-
[解決済み] 右クリックでContextMenuを表示する前にTreeView Nodeを選択する
-
[解決済み] WPFでデザインタイムデータをダミー化するには、どのような方法がありますか?
-
[解決済み] ListBoxに垂直スクロールバーを表示させるには?
-
[解決済み] WPF-ラベルの改行?