public class ViewModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public void SetProperty<T>(ref T field, T value, Expression<Func<T>> exp) { if (EqualityComparer<T>.Default.Equals(field, value)) return; field = value; if (PropertyChanged != null) { MemberExpression me = exp.Body as MemberExpression; if (me != null && me.Member != null) PropertyChanged(this, new PropertyChangedEventArgs(me.Member.Name)); } } }
Saturday, February 28, 2015
INPC with Equality check
Saturday, February 7, 2015
Code Snippet to walk Visual Tree for Dev Express GridControl Specifics
private void AssociatedObject_LayoutUpdated(object sender, EventArgs e) { var v = AssociatedObject.View; HierarchyPanel hp = VisualTreeHelpers.FindChild(v); GridRow grs = VisualTreeHelpers.FindChild (hp); var ie = v.FindLogicalChildren (); var ie2 = v.FindVisualChildren (); int i1 = ie.Count(); int i2 = ie2.Count(); int i3 = hp.FindVisualChildren ().Count(); } private GridControl dgc; private bool b; private void AssociatedObject_MasterRowExpanded(object sender, RowEventArgs e) { dgc= AssociatedObject.GetDetail(e.RowHandle) as GridControl; dgc.ItemsSourceChanged+=dgc_ItemsSourceChanged; var i = dgc.ItemsSource; var col = dgc.ItemsSource as ObservableCollection ; col.CollectionChanged += col_CollectionChanged; } private void BlankoutColumns(int rowHandle) { var dgc = AssociatedObject.GetVisibleDetail(rowHandle) as GridControl; var dc = dgc.View.DataControl as GridControl; for (int i = 0; i < dc.VisibleRowCount; i++) { int h = dc.GetRowHandleByVisibleIndex(i); foreach (var c in dc.Columns) { if (c.Name == "ChildName") { var v = dc.GetCellValue(h, c); // c.CellTemplate = new DataTemplate(); // take out data template so next update never shown // dc.SetCellValue(h, c, null); // blank out already rendered text } } } } DependencyPropertyDescriptor propertyDescriptor = DependencyPropertyDescriptor.FromProperty(GridViewBase.VisibleColumnsProperty, typeof(GridViewBase)); propertyDescriptor.AddValueChanged(AssociatedObject.View, VisibleColumnsChanged);
Subscribe to:
Posts (Atom)