public override void OnApplyTemplate() { base.OnApplyTemplate(); TextBox textBox = null; foreach (var tb in VisualTreeHelperUtil.GetControlsDecendant <TextBox>(this).Where(uie => uie.Focusable)) { textBox = tb; tb.GotFocus += (sender, e) => OnControlGotFous((UIElement)sender); tb.LostFocus += delegate { IsOrHisChildrenAreFocused = IsOrHisChildrenAreFocused; if (SelectedItem == null) { SelectedItem = Items[0]; } }; } if (textBox != null) { textBox.Focus(); textBox.SelectAll(); } }
internal ListViewItem GetListViewItem(PropertyBase property) { return((from lvi in VisualTreeHelperUtil.GetControlsDecendant <ListViewItem>(propertiesListView) let uiProperty = lvi.Content as UIProperty where uiProperty != null && uiProperty.BusinessInstance == property select lvi).First()); }
internal ListViewItem GetListViewItem(ComplexProperty complexProperty, out int index) { var value = (from lvi in VisualTreeHelperUtil.GetControlsDecendant <ListViewItem>(propertiesListView) let uiRelatedProperty = lvi.Content as UIRelatedProperty where uiRelatedProperty != null select new { ListViewItem = lvi, UIRelatedProperty = uiRelatedProperty }).Select((lvi, i) => new { ListViewItem = lvi, Index = i }).First(lvi => lvi.ListViewItem.UIRelatedProperty.BusinessInstance == complexProperty); index = value.Index; return(value.ListViewItem.ListViewItem); }
private bool RenameProperty(object listViewItem) { var editableTextBlock = VisualTreeHelperUtil.GetControlsDecendant <EditableTextBlock>(listViewItem).First(); if (editableTextBlock != null) { editableTextBlock.Edit(); return(true); } return(false); }
internal ListViewItem GetListViewItem(NavigationProperty navigationProperty, out int index) { foreach (ListViewItem lvia in VisualTreeHelperUtil.GetControlsDecendant <ListViewItem>(propertiesListView)) { lvia.ToString(); } var value = (from lvi in VisualTreeHelperUtil.GetControlsDecendant <ListViewItem>(propertiesListView) let uiRelatedProperty = lvi.Content as UIRelatedProperty where uiRelatedProperty != null select new { ListViewItem = lvi, UIRelatedProperty = uiRelatedProperty }).Select((lvi, i) => new { ListViewItem = lvi, Index = i }).First(lvi => lvi.ListViewItem.UIRelatedProperty.BusinessInstance == navigationProperty); index = value.Index; // +navigationProperty.EntityType.ComplexProperties.Count; return(value.ListViewItem.ListViewItem); }
protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e) { base.OnPreviewMouseLeftButtonDown(e); foreach (var relation in VisualTreeHelperUtil.GetControlsDecendant <RelationBase>(this)) { relation.IsSelected = false; } var typeDesigner = VisualTreeHelperUtil.GetControlAscendant <TypeBaseDesigner>(e.OriginalSource); _moveEntityType = typeDesigner != null && VisualTreeHelperUtil.GetControlAscendant <ListView>(e.OriginalSource) == null && VisualTreeHelperUtil.GetControlAscendant <TextBox>(e.OriginalSource) == null; if (_moveEntityType) { _moveEntityTypeStartPoint = e.GetPosition(this); Cursor = Cursors.ScrollAll; } }
internal void DrawAssociation(TypeBaseDesigner otherTypeDesigner, NavigationProperty navigationProperty) { var csdlAssociation = navigationProperty.Association; int otherTypeDesignerItemIndex; var otherNavigationProperty = csdlAssociation.PropertiesEnd.First(np => np != navigationProperty); var otherListViewItem = otherTypeDesigner.GetListViewItem(otherNavigationProperty, out otherTypeDesignerItemIndex); int typeDesignerItemIndex; var typeDesignerListViewItem = GetListViewItem(navigationProperty, out typeDesignerItemIndex); ICSharpCode.Data.EDMDesigner.Core.UI.UserControls.Relations.Association association; if (csdlAssociation.PropertyEnd1 == navigationProperty) { association = new ICSharpCode.Data.EDMDesigner.Core.UI.UserControls.Relations.Association(csdlAssociation, Designer, this, otherTypeDesigner, typeDesignerListViewItem, otherListViewItem, typeDesignerItemIndex, otherTypeDesignerItemIndex); } else { association = new ICSharpCode.Data.EDMDesigner.Core.UI.UserControls.Relations.Association(csdlAssociation, Designer, otherTypeDesigner, this, otherListViewItem, typeDesignerListViewItem, otherTypeDesignerItemIndex, typeDesignerItemIndex); } var relationContener = new RelationContener(association); Designer.Children.Add(relationContener); relationContener.SetBinding(Canvas.LeftProperty, new Binding { Source = association, Path = new PropertyPath("CanvasLeft") }); relationContener.SetBinding(Canvas.TopProperty, new Binding { Source = association, Path = new PropertyPath("CanvasTop") }); AddRelationContenerByRelatedProperty(UIType.Properties[navigationProperty], relationContener); otherTypeDesigner.AddRelationContenerByRelatedProperty(otherTypeDesigner.UIType.Properties[otherNavigationProperty], relationContener); NotifyCollectionChangedEventHandler mappingCollectionChanged = delegate { VisualTreeHelperUtil.GetControlsDecendant <EditableTextBlock>(otherListViewItem).First().GetBindingExpression(EditableTextBlock.OpacityProperty).UpdateTarget(); VisualTreeHelperUtil.GetControlsDecendant <EditableTextBlock>(typeDesignerListViewItem).First().GetBindingExpression(EditableTextBlock.OpacityProperty).UpdateTarget(); }; csdlAssociation.PropertyEnd1.Mapping.CollectionChanged += mappingCollectionChanged; csdlAssociation.PropertyEnd2.Mapping.CollectionChanged += mappingCollectionChanged; }