namespace FeedbackGeneratorQQ { using System.Windows; using System.Windows.Controls; using System.Windows.Data; using FeedbackGeneratorQQ.Controls; using FeedbackGeneratorQQ.Models; using FeedbackGeneratorQQ.Utils; public partial class MainWindow { private readonly FeedbackGeneratorModel viewModel = new FeedbackGeneratorModel(); public MainWindow() { InitializeComponent(); this.CreateAttributesAndSetBindings(); } private void CreateAttributesAndSetBindings() { BinderHelper binderHelper = new BinderHelper(viewModel); binderHelper.AddBinding(FirstName, TextBox.TextProperty, "FirstName", BindingMode.OneWayToSource); binderHelper.AddBinding(LastName, TextBox.TextProperty, "LastName", BindingMode.OneWayToSource); binderHelper.AddBinding(Gender, ComboBox.TextProperty, "Gender"); binderHelper.AddBinding(Result, TextBox.TextProperty, "Result", BindingMode.OneWay); viewModel.GenerateAttributes(binderHelper, this.AttributesPanel); } private async void ButtonGenerateClick(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(viewModel.FirstName) || string.IsNullOrEmpty(viewModel.LastName)) { viewModel.Result = "First Name and Last Name are required"; } else { viewModel.Result = "Generating..."; viewModel.Result = await viewModel.GenerateResult(); } } private void HelpMenuItemClick(object sender, RoutedEventArgs e) { Help help = new Help(); help.ShowDialog(); } } }