internal bool UpdateRowPartLayout(object listItem, ListViewItem listViewItem, bool trackUpdate = true) { if (listViewItem == null) { if (this.DataGrid.ItemFixHeight == 0.0 && this.DataGrid.IsVirtualizing) { this.DirtyItems.Add(listItem); if (trackUpdate) { this.UpdateLayout(); } } return(false); } else { if (!listViewItem.IsLoaded) { listViewItem.ApplyTemplate(); } GridViewRowPresenter _gridPresenter = ElementHelper.FindVisualChild <GridViewRowPresenter>(listViewItem); UpdateRowArea(_gridPresenter); return(true); } }
/// protected override List <AutomationPeer> GetChildrenCore() { ListView listview = _listviewAP.Owner as ListView; Invariant.Assert(listview != null); object item = Item; ListViewItem lvi = listview.ItemContainerGenerator.ContainerFromItem(item) as ListViewItem; if (lvi != null) { GridViewRowPresenter rowPresenter = GridViewAutomationPeer.FindVisualByType(lvi, typeof(GridViewRowPresenter)) as GridViewRowPresenter; if (rowPresenter != null) { Hashtable oldChildren = _dataChildren; //cache the old ones for possible reuse _dataChildren = new Hashtable(rowPresenter.ActualCells.Count); List <AutomationPeer> list = new List <AutomationPeer>(); int row = listview.Items.IndexOf(item); int column = 0; foreach (UIElement ele in rowPresenter.ActualCells) { GridViewCellAutomationPeer peer = (oldChildren == null ? null : (GridViewCellAutomationPeer)oldChildren[ele]); if (peer == null) { if (ele is ContentPresenter) { peer = new GridViewCellAutomationPeer((ContentPresenter)ele, _listviewAP); } else if (ele is TextBlock) { peer = new GridViewCellAutomationPeer((TextBlock)ele, _listviewAP); } else { Invariant.Assert(false, "Children of GridViewRowPresenter should be ContentPresenter or TextBlock"); } } //protection from indistinguishable UIElement - for example, 2 UIElement wiht same value if (_dataChildren[ele] == null) { //Set Cell's row and column peer.Column = column; peer.Row = row; list.Add(peer); _dataChildren.Add(ele, peer); column++; } } return(list); } } return(null); }
private ContentPresenter GetContentPresenter(GridViewRowPresenter rowPresenter, int index) { int childCount = VisualTreeHelper.GetChildrenCount(rowPresenter); if (index > childCount - 1) { return(null); } return(VisualTreeHelper.GetChild(rowPresenter, index) as ContentPresenter); }
private TreeViewItem CreateTreeItem(TreeListView tree, string name, ImageSource imageSource, int level, UIElement value = null, string typeString = null, bool nameItalic = false) { TreeViewItem item = new TreeViewItem(); GridViewRowPresenter rowPresenter = new GridViewRowPresenter() { Columns = tree.Columns, Content = level, }; item.Header = rowPresenter; item.Loaded += (sender, e) => { FrameworkElement expander = item.Template.FindName("Expander", item) as FrameworkElement; StackPanel nameStackPanel = FindVisualChild <StackPanel>(rowPresenter, "Name"); StackPanel valueStackPanel = FindVisualChild <StackPanel>(rowPresenter, "Value"); StackPanel typeStackPanel = FindVisualChild <StackPanel>(rowPresenter, "Type"); if (expander != null && nameStackPanel != null) { Panel expanderParent = expander.Parent as Panel; if (expanderParent != null) { if (level > 0) { expanderParent.Margin = new Thickness(-19, 0, 0, 0); nameStackPanel.Margin = new Thickness(10 * (level - 1), 0, 0, 0); } else { nameStackPanel.Margin = new Thickness(-19, 0, 0, 0); } nameStackPanel.Orientation = Orientation.Horizontal; expanderParent.Children.Remove(expander); nameStackPanel.Children.Add(expander); nameStackPanel.Children.Add(CreateTextWithIcon(name, imageSource, italic: nameItalic)); } } if (valueStackPanel != null && value != null) { valueStackPanel.Orientation = Orientation.Horizontal; valueStackPanel.Children.Add(value); } if (typeStackPanel != null && typeString != null) { typeStackPanel.Orientation = Orientation.Horizontal; typeStackPanel.Children.Add(new TextBlock() { Text = typeString, }); } }; return(item); }
private static FrameworkElement FindNameFromCellTemplate(ListView listView, Int32 cellColumn, Int32 cellRow, String name) { if (listView == null) { throw new ArgumentNullException("listView"); } if (!listView.IsLoaded) { throw new InvalidOperationException("ListView is not yet loaded"); } if (cellRow >= listView.Items.Count || cellRow < 0) { throw new ArgumentOutOfRangeException("row"); } GridView gridView = listView.View as GridView; if (gridView == null) { return(null); } if (cellColumn >= gridView.Columns.Count || cellColumn < 0) { throw new ArgumentOutOfRangeException("column"); } ListViewItem item = listView.ItemContainerGenerator.ContainerFromItem(listView.Items[cellRow]) as ListViewItem; if (item != null) { if (!item.IsLoaded) { item.ApplyTemplate(); } GridViewRowPresenter rowPresenter = GetFrameworkElementByName <GridViewRowPresenter>(item); if (rowPresenter != null) { ContentPresenter templatedParent = VisualTreeHelper.GetChild(rowPresenter, cellColumn) as ContentPresenter; DataTemplate dataTemplate = gridView.Columns[cellColumn].CellTemplate; if (dataTemplate != null && templatedParent != null) { return(dataTemplate.FindName(name, templatedParent) as FrameworkElement); } } } return(null); }
/// <summary>Gets the collection of child elements of the <see cref="P:System.Windows.Controls.ItemsControl.Items" /> collection that is associated with this <see cref="T:System.Windows.Automation.Peers.GridViewItemAutomationPeer" />. Called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetChildren" />.</summary> /// <returns>The collection of child elements.</returns> // Token: 0x060026DE RID: 9950 RVA: 0x000B8264 File Offset: 0x000B6464 protected override List <AutomationPeer> GetChildrenCore() { ListView listView = this._listviewAP.Owner as ListView; Invariant.Assert(listView != null); object item = base.Item; ListViewItem listViewItem = listView.ItemContainerGenerator.ContainerFromItem(item) as ListViewItem; if (listViewItem != null) { GridViewRowPresenter gridViewRowPresenter = GridViewAutomationPeer.FindVisualByType(listViewItem, typeof(GridViewRowPresenter)) as GridViewRowPresenter; if (gridViewRowPresenter != null) { Hashtable dataChildren = this._dataChildren; this._dataChildren = new Hashtable(gridViewRowPresenter.ActualCells.Count); List <AutomationPeer> list = new List <AutomationPeer>(); int row = listView.Items.IndexOf(item); int num = 0; foreach (UIElement uielement in gridViewRowPresenter.ActualCells) { GridViewCellAutomationPeer gridViewCellAutomationPeer = (dataChildren == null) ? null : ((GridViewCellAutomationPeer)dataChildren[uielement]); if (gridViewCellAutomationPeer == null) { if (uielement is ContentPresenter) { gridViewCellAutomationPeer = new GridViewCellAutomationPeer((ContentPresenter)uielement, this._listviewAP); } else if (uielement is TextBlock) { gridViewCellAutomationPeer = new GridViewCellAutomationPeer((TextBlock)uielement, this._listviewAP); } else { Invariant.Assert(false, "Children of GridViewRowPresenter should be ContentPresenter or TextBlock"); } } if (this._dataChildren[uielement] == null) { gridViewCellAutomationPeer.Column = num; gridViewCellAutomationPeer.Row = row; list.Add(gridViewCellAutomationPeer); this._dataChildren.Add(uielement, gridViewCellAutomationPeer); num++; } } return(list); } } return(null); }
/// <summary> /// Return editor for the column. /// </summary> public MyEdit GetEditor(int viewColumnId, int columnId, bool isInlineNote) { GridViewRowPresenter rowPresenter = GetTemplateChild("PART_Header") as GridViewRowPresenter; if (rowPresenter == null) { return(null); } DataTemplate dataTemplate = rowPresenter.Columns[viewColumnId].CellTemplate; ContentPresenter contentPresenter = GetContentPresenter(rowPresenter, columnId); if (contentPresenter == null) { return(null); } try { var contentControl = dataTemplate.FindName("PART_ContentControl", contentPresenter) as ContentControl; if (contentControl == null) { var edit = dataTemplate.FindName("PART_MyEdit", contentPresenter); return(edit as MyEdit); } else { DataTemplate contentControlTemplate = contentControl.ContentTemplate; ContentPresenter presenter = VisualTreeHelper.GetChild(contentControl, 0) as ContentPresenter; object ed; if (isInlineNote) { ed = contentControlTemplate.FindName("PART_InlineEdit", presenter); } else { ed = contentControlTemplate.FindName("PART_MyEdit", presenter); } return(ed as MyEdit); } } catch { return(null); } }
/// <summary> /// Show tooltip if text is too long to fit in the column /// </summary> /// <param name="value">TextBlock</param> /// <param name="targetType"></param> /// <param name="parameter">In xaml, specify eg. ConverterParameter=2 to specify column index of column containing the TextBlock</param> /// <param name="culture"></param> /// <returns>Visibility for Tooltip</returns> public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (parameter == null) { throw new ArgumentNullException("Please specify column index as converter parameter"); } if (value == null) { return(Visibility.Hidden); } TextBlock textBlock = (TextBlock)value; ContentPresenter contentPresenter = (ContentPresenter)VisualTreeHelper.GetParent(textBlock); GridViewRowPresenter rowPresenter = (GridViewRowPresenter)contentPresenter.Parent; int columnIndex = int.Parse((string)parameter); var columnWidth = rowPresenter.Columns[columnIndex].ActualWidth; return(textBlock.ActualWidth > columnWidth ? Visibility.Visible : Visibility.Hidden); }
internal void UpdateRowArea(GridViewRowPresenter gridPresenter) { if (gridPresenter == null) { // happens due to virutalization return; } ContentPresenter _cellContent = null; FrameworkElement _cellElement = null; for (int i = 0; i < gridPresenter.Columns.Count; i++) { _cellContent = VisualTreeHelper.GetChild(gridPresenter, i) as ContentPresenter; _cellElement = ElementHelper.FindVisualChild <FrameworkElement>(_cellContent); if (_cellElement != null) { _cellElement.InvalidateMeasure(); _cellElement.InvalidateArrange(); _cellElement.UpdateLayout(); } } }
public static FrameworkElement GetElementFromCellTemplate(ListView listView, Int32 column, Int32 row, String name) { if (row >= listView.Items.Count || row < 0) { throw new ArgumentOutOfRangeException("row"); } GridView gridView = listView.View as GridView; if (gridView == null) { return(null); } if (column >= gridView.Columns.Count || column < 0) { throw new ArgumentOutOfRangeException("column"); } ListViewItem item = listView.ItemContainerGenerator.ContainerFromItem(listView.Items[row]) as ListViewItem; if (item != null) { GridViewRowPresenter rowPresenter = GetFrameworkElementByName <GridViewRowPresenter>(item); if (rowPresenter != null) { ContentPresenter templatedParent = VisualTreeHelper.GetChild(rowPresenter, column) as ContentPresenter; DataTemplate dataTemplate = gridView.Columns[column].CellTemplate; if (dataTemplate != null && templatedParent != null) { return(dataTemplate.FindName(name, templatedParent) as FrameworkElement); } } } return(null); }
public static IObservable <EventPattern <ManipulationCompletedEventArgs> > ManipulationCompletedObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <EventHandler <ManipulationCompletedEventArgs>, ManipulationCompletedEventArgs>(h => This.ManipulationCompleted += h, h => This.ManipulationCompleted -= h)); }
public static IObservable <EventPattern <TextCompositionEventArgs> > TextInputObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <TextCompositionEventHandler, TextCompositionEventArgs>(h => This.TextInput += h, h => This.TextInput -= h)); }
public static IObservable <EventPattern <SizeChangedEventArgs> > SizeChangedObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <SizeChangedEventHandler, SizeChangedEventArgs>(h => This.SizeChanged += h, h => This.SizeChanged -= h)); }
public static IObservable <EventPattern <TouchEventArgs> > PreviewTouchUpObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <EventHandler <TouchEventArgs>, TouchEventArgs>(h => This.PreviewTouchUp += h, h => This.PreviewTouchUp -= h)); }
public static IObservable <EventPattern <QueryContinueDragEventArgs> > QueryContinueDragObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <QueryContinueDragEventHandler, QueryContinueDragEventArgs>(h => This.QueryContinueDrag += h, h => This.QueryContinueDrag -= h)); }
public static IObservable <EventPattern <MouseButtonEventArgs> > PreviewMouseUpObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <MouseButtonEventHandler, MouseButtonEventArgs>(h => This.PreviewMouseUp += h, h => This.PreviewMouseUp -= h)); }
public static IObservable <EventPattern <MouseButtonEventArgs> > MouseLeftButtonDownObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <MouseButtonEventHandler, MouseButtonEventArgs>(h => This.MouseLeftButtonDown += h, h => This.MouseLeftButtonDown -= h)); }
public bool ExportToExcel(ListView lvView, string path) { try { LogManager.WriteLog("Process started - 1", LogManager.enumLogLevel.Info); Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application(); Workbook wb = xla.Workbooks.Add(XlSheetType.xlWorksheet); Worksheet ws = (Worksheet)xla.ActiveSheet; LogManager.WriteLog("Process started - 2", LogManager.enumLogLevel.Info); int i = 1; int j = 1; int colcount = 0; GridView view = (System.Windows.Controls.GridView)(lvView.View); foreach (GridViewColumn col in (IEnumerable <GridViewColumn>)view.Columns) { ws.Cells[i, j] = col.Header; j++; //foreach (PropertyInfo info in lvView.Items[0].GetType().GetProperties()) //{ // //if (col.Header.ToString().Replace(" ", "").ToUpper() == info.Name.Replace(" ", "").ToUpper()) // //{ // // ws.Cells[i, j] = info.Name; // // j++; // // break; // //} // //else // //{ // // NotFound = true;z // //} //} //if (NotFound) //{ // ws.Cells[i, j] = info.Name; //} } i++; //j = 1; colcount = j - 1; j = 1; GridView gridView = lvView.View as GridView; foreach (TicketExceptions item in lvView.Items) { ListViewItem item1 = lvView.ItemContainerGenerator.ContainerFromIndex(lvView.Items.IndexOf(item)) as ListViewItem; GridViewRowPresenter rowPresenter = GetFrameworkElementByName <GridViewRowPresenter>(item1); for (int col = 0; col < colcount; col++) { if (rowPresenter != null) { ContentPresenter templatedParent = System.Windows.Media.VisualTreeHelper.GetChild(rowPresenter, col) as ContentPresenter; foreach (PropertyInfo info in item.GetType().GetProperties()) { TextBlock block = (TextBlock)gridView.Columns[col].CellTemplate.FindName(info.Name, templatedParent); if (block != null) { if (gridView.Columns[col].Header.ToString().ToUpper() == block.Tag.ToString().ToUpper()) { ws.Cells[i, j] = block.Text; j++; break; } } } } } j = 1; i++; } ws.SaveAs(path, Microsoft.Office.Interop.Excel.XlFileFormat.xlXMLSpreadsheet, null, null, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, null, null, null); // ws.Delete(); return(true); } catch (Exception ex) { LogManager.WriteLog("Inside catch", LogManager.enumLogLevel.Info); int i = 1; int j = 1; int colcount = 0; FileInfo f = new FileInfo(path); if (File.Exists(path)) { try { File.Delete(path); } catch (IOException iex) { LogManager.WriteLog("Inside IOException catch:File being used by another process" + iex, LogManager.enumLogLevel.Info); return(false); } } StreamWriter w = f.CreateText(); GridView view = (System.Windows.Controls.GridView)(lvView.View); foreach (GridViewColumn col in (IEnumerable <GridViewColumn>)view.Columns) { w.Write(col.Header + ","); j++; } i++; //j = 1; colcount = j - 1; j = 1; w.WriteLine(""); GridView gridView = lvView.View as GridView; foreach (TicketExceptions item in lvView.Items) { ListViewItem item1 = lvView.ItemContainerGenerator.ContainerFromIndex(lvView.Items.IndexOf(item)) as ListViewItem; GridViewRowPresenter rowPresenter = GetFrameworkElementByName <GridViewRowPresenter>(item1); for (int col = 0; col < colcount; col++) { if (rowPresenter != null) { ContentPresenter templatedParent = System.Windows.Media.VisualTreeHelper.GetChild(rowPresenter, col) as ContentPresenter; foreach (PropertyInfo info in item.GetType().GetProperties()) { TextBlock block = (TextBlock)gridView.Columns[col].CellTemplate.FindName(info.Name, templatedParent); if (block != null) { if (gridView.Columns[col].Header.ToString().ToUpper() == block.Tag.ToString().ToUpper()) { w.Write(block.Text, ","); j++; break; } } } } } j = 1; i++; w.WriteLine(""); } LogManager.WriteLog("Saved", LogManager.enumLogLevel.Info); ExceptionManager.Publish(ex); return(true); } }
public static IObservable <EventPattern <DragEventArgs> > DropObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <DragEventHandler, DragEventArgs>(h => This.Drop += h, h => This.Drop -= h)); }
public static IObservable <EventPattern <GiveFeedbackEventArgs> > GiveFeedbackObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <GiveFeedbackEventHandler, GiveFeedbackEventArgs>(h => This.GiveFeedback += h, h => This.GiveFeedback -= h)); }
public static IObservable <EventPattern <TouchEventArgs> > TouchLeaveObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <EventHandler <TouchEventArgs>, TouchEventArgs>(h => This.TouchLeave += h, h => This.TouchLeave -= h)); }
public static IObservable <EventPattern <ManipulationInertiaStartingEventArgs> > ManipulationInertiaStartingObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <EventHandler <ManipulationInertiaStartingEventArgs>, ManipulationInertiaStartingEventArgs>(h => This.ManipulationInertiaStarting += h, h => This.ManipulationInertiaStarting -= h)); }
public static IObservable <EventPattern <DependencyPropertyChangedEventArgs> > FocusableChangedObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <DependencyPropertyChangedEventHandler, DependencyPropertyChangedEventArgs>(h => This.FocusableChanged += h, h => This.FocusableChanged -= h)); }
public static IObservable <EventPattern <RoutedEventArgs> > LostFocusObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <RoutedEventHandler, RoutedEventArgs>(h => This.LostFocus += h, h => This.LostFocus -= h)); }
public static IObservable <EventPattern <EventArgs> > LayoutUpdatedObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <EventHandler, EventArgs>(h => This.LayoutUpdated += h, h => This.LayoutUpdated -= h)); }
public static IObservable <EventPattern <RoutedEventArgs> > UnloadedObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <RoutedEventHandler, RoutedEventArgs>(h => This.Unloaded += h, h => This.Unloaded -= h)); }
public static IObservable <EventPattern <ToolTipEventArgs> > ToolTipClosingObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <ToolTipEventHandler, ToolTipEventArgs>(h => This.ToolTipClosing += h, h => This.ToolTipClosing -= h)); }
public static IObservable <EventPattern <ContextMenuEventArgs> > ContextMenuClosingObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <ContextMenuEventHandler, ContextMenuEventArgs>(h => This.ContextMenuClosing += h, h => This.ContextMenuClosing -= h)); }
public static IObservable <EventPattern <ManipulationBoundaryFeedbackEventArgs> > ManipulationBoundaryFeedbackObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <EventHandler <ManipulationBoundaryFeedbackEventArgs>, ManipulationBoundaryFeedbackEventArgs>(h => This.ManipulationBoundaryFeedback += h, h => This.ManipulationBoundaryFeedback -= h)); }
public static IObservable <EventPattern <DragEventArgs> > PreviewDragLeaveObserver(this GridViewRowPresenter This) { return(Observable.FromEventPattern <DragEventHandler, DragEventArgs>(h => This.PreviewDragLeave += h, h => This.PreviewDragLeave -= h)); }