Я должен создать Диалоговое окно / Подсказка включая TextBox для ввода данных пользователем. Моя проблема, как получить текст, подтвердив диалоговое окно? Обычно я делал бы класс для этого, которое сохранит текст в свойстве. Однако я хочу, действительно разрабатывают Диалоговое окно с помощью XAML. Таким образом, у меня так или иначе был бы до степени Код XAML для сохранения содержания TextBox в свойстве - но я предполагаю, что это не возможно с чистым XAML. Каков был бы лучший способ понять то, что я хотел бы сделать? Как создать диалоговое окно, которое может быть определено от XAML, но может все еще так или иначе возвратить вход? Спасибо за любую подсказку!
"Ответственный" ответ будет для меня: Предлагаем создать ViewModel для диалогового окна и использовать двустороннюю привязку данных к TextBox, чтобы ViewModel имел какое-то свойство ResponseText или что-то еще. Это достаточно легко сделать, но, вероятно, излишне.
Прагматическим ответом было бы просто присвоить текстовому полю 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);
}