public void AddButtonColumn(string buttonText, int widthPercent, RoutedEventHandler clickHandler, Style style = null) { FrameworkElementFactory ef = new FrameworkElementFactory(typeof(Button)); ef.SetValue(Button.StyleProperty, ResourceLoader.GetControlStyle("ButtonStyle")); ef.SetValue(Button.ContentProperty, buttonText); ef.AddHandler(Button.ClickEvent, clickHandler, true); AddColumn(ef, widthPercent, "", "", style); }
private List <IValidatable> requireValidation; // list of controls that require validation public MainWindow() { // Catch any vague XAML exceptions try { InitializeComponent(); } catch { MessageBox.Show("XAML initialization error."); } Icon = ResourceLoader.GetProgramIconBitmap(); Title = "AmazonScrape"; Version version = Assembly.GetExecutingAssembly().GetName().Version; Title += " " + version; WindowState = System.Windows.WindowState.Maximized; // Specify the controls requiring validation // (validation properties are set in XAML) requireValidation = new List <IValidatable>(); requireValidation.Add(txtSearch); requireValidation.Add(txtNumberOfResults); requireValidation.Add(txtMinNumberOfReviews); requireValidation.Add(PriceRange); Style smallTextStyle = ResourceLoader.GetControlStyle("DataGridSmallTextStyle"); Style mediumTextStyle = ResourceLoader.GetControlStyle("DataGridMediumTextStyle"); Style largeTextStyle = ResourceLoader.GetControlStyle("DataGridLargeTextStyle"); // Specify the result grid format ResultGrid.ColumnHeaderHeight = 40; ResultGrid.MouseDoubleClick += dataGrid_MouseDoubleClick; ResultGrid.PreviewMouseLeftButtonDown += dataGrid_PreviewMouseLeftButtonDown; ResultGrid.AddImageColumn("ProductImage", "Product", 5, BindingMode.TwoWay); ResultGrid.AddImageColumn("PrimeLogoImage", "Prime", 4, BindingMode.OneWay, "IsPrimeEligible"); ResultGrid.AddTextColumn("Name", "Product Name", 13, mediumTextStyle); ResultGrid.AddTextColumn("LowPrice", "Low Price", 5, largeTextStyle); ResultGrid.AddTextColumn("HighPrice", "High Price", 5, largeTextStyle); ResultGrid.AddTextColumn("Rating", "Rating", 3, largeTextStyle); ResultGrid.AddTextColumn("ReviewCount", "Reviews", 5, largeTextStyle); ResultGrid.AddTextColumn("ReviewDistribution", "Distribution", 5, smallTextStyle); ResultGrid.AddButtonColumn("Open", 3, new RoutedEventHandler(OpenInBrowser_Click)); // Set focus to the search control once the window is loaded this.Loaded += MainWindow_Loaded; }