WPF Quick Reminders
12-Nov-1313 Leave a comment
Windows Forms Integration
Dim myControl1 = New WpfControlLibrary.CustomControl1
myControl1.Content = "Hello World"
Me.ElementHost1.Child = myControl1
Docking
You may want HorizontalAlignment or VerticalAlignment = “Stretch”
DataBinding
Imports System.Data.Entity
private AccountTypeContext _context = new AccountTypeContext();
private CollectionViewSource myCollectionViewSource;
//Next in Loaded. If in user control then:
// Do not load your data at design time.
if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
{ }
myCollectionViewSource = (CollectionViewSource)this.Resources["accountTypeViewSource"];
_context.AccountTypes.Load();
myCollectionViewSource.Source = _context.AccountTypes.Local;
DataBinding – BindingNavigator Functions
private void MoveFirstButton_Click(object sender, RoutedEventArgs e){myCollectionViewSource.View.MoveCurrentToFirst();}private void MovePreviousButton_Click(object sender, RoutedEventArgs e){myCollectionViewSource.View.MoveCurrentToPrevious();}private void MoveNextButton_Click(object sender, RoutedEventArgs e){myCollectionViewSource.View.MoveCurrentToNext();}private void MoveLastButton_Click(object sender, RoutedEventArgs e){myCollectionViewSource.View.MoveCurrentToLast();}//
It may be necessary to use
myDataGrid.ScrollIntoView(myDataGrid.SelectedItem);
DataBinding – Filter
With acknowledgment to:
and
In _LoadedmyCollectionViewSource.Filter += new FilterEventHandler(FilterTextBoxLike);In Code - assuming you have a text box called FilterTextBox#region Filterbool FilterClearing;private void FilterTextBox_TextChanged(object sender, TextChangedEventArgs e){try{if (FilterClearing == false){RefreshList();}}catch (Exception ex){MessageBox.Show(ex.Message);}}private void RefreshList(){myCollectionViewSource.View.Refresh();}private void FilterTextBoxLike(object sender, FilterEventArgs e){AccountType at = e.Item as AccountType;if (at.AccountType1.ToLower().Contains(FilterTextBox.Text.ToLower())){e.Accepted = true;}else{e.Accepted = false;}}private void ClearFilterButton_Click(object sender, RoutedEventArgs e){try{FilterClearing = true;FilterTextBox.Text = "";RefreshList();}catch (Exception ex){MessageBox.Show(ex.Message);}FilterClearing = false;}#endregion.
Data Grid – Styles
DatePicker as UK style date
Two actions seem to be required
Imports System.Globalization
Imports System.Threading
Namespace My
Partial Friend Class MyApplication
Private Sub MyApplication_Startup(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup
Dim ci = New CultureInfo(Thread.CurrentThread.CurrentCulture.Name)
ci.DateTimeFormat.ShortDatePattern = “dd-MMM-yyyy”
Thread.CurrentThread.CurrentCulture = ci
End Sub
End Class
End Namespace
<DatePicker Name=”DateReportedTextBox” Text=”{Binding Path=DateReported, StringFormat={}{0:dd-MMM-yyyy}}” />
End