public void OnMouseDoubleClick(RoutedEventHandler handler) { _handler = handler; _playList.AddHandler(GridViewRowPresenter.MouseLeftButtonDownEvent, new RoutedEventHandler(MouseDown)); _playList.AddHandler(GridViewRowPresenter.MouseLeftButtonUpEvent, new RoutedEventHandler(MouseUp)); _playList.AddHandler(GridViewRowPresenter.MouseMoveEvent, new RoutedEventHandler(MouseMove)); }
private static void RegisterSortableGridView(ListView grid, DependencyPropertyChangedEventArgs args) { if (args.NewValue is Boolean && (Boolean)args.NewValue) { grid.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(GridViewColumnHeaderClickedHandler)); } else { grid.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(GridViewColumnHeaderClickedHandler)); } }
/// Called when [register sortable grid]. private static void OnRegisterSortableGrid(DependencyObject obj, DependencyPropertyChangedEventArgs args) { // Check if we are in design mode, if so don't do anything. if ((Boolean)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue)) { return; } ListView view = obj as ListView; if (view != null) { foreach (string s in _listViewDefinitions.Keys) { if (s.ToString() == view.Name) { _listViewDefinitions.Remove(view.Name); break; } } if (!string.IsNullOrEmpty(view.Name)) { _listViewDefinitions.Add(view.Name, new ListViewSortItem(System.Activator.CreateInstance(Type.GetType(GetCustomListViewSorter(obj))) as IListViewCustomComparer, null, ListSortDirection.Ascending)); view.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(GridViewColumnHeaderClickedHandler)); } } }
private void ListView_Loaded(object sender, RoutedEventArgs e) { ListView listView = (ListView)sender; ScrollViewer scroll = VisualTreeHelperEx.FindDescendantByType <ScrollViewer>(listView); if (scroll == null) { return; } // 鼠标横向滚动。 listView.AddHandler(MouseWheelEvent, new MouseWheelEventHandler((mouseWheelSender, mouseWheelEventArgs) => { var delta = mouseWheelEventArgs.Delta; if (delta > 0) { scroll.LineLeft(); } else { scroll.LineRight(); } }), true); var bar = scroll.FindVisualChildren <ScrollBar>().ElementAt(2); bar.ValueChanged += bar_ValueChanged; _bottomBar = bar; }
private static void UpdateAutoSizing(FrameworkElement fe, bool enable) { ListView list_view = fe as ListView; if (list_view == null) { return; } GridView grid_view = list_view.View as GridView; if (grid_view == null) { return; } if (enable) { AutoSizeColumns(list_view, true); UpdateIsLastColumn(list_view); list_view.SizeChanged += ListViewSizeChanged; list_view.AddHandler(Thumb.DragDeltaEvent, new DragDeltaEventHandler(ColumnHeaderResized), true); grid_view.Columns.CollectionChanged += GridViewColumnsCollectionChanged; foreach (var col in grid_view.Columns) { SetParentListView(col, list_view); } } else { list_view.SizeChanged -= ListViewSizeChanged; list_view.RemoveHandler(Thumb.DragDeltaEvent, new DragDeltaEventHandler(ColumnHeaderResized)); grid_view.Columns.CollectionChanged -= GridViewColumnsCollectionChanged; } }
private static void OnSortCommandChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args) { ListView list_view = obj as ListView; if (list_view == null) { return; } GridView grid_view = list_view.View as GridView; if (grid_view == null) { return; } bool has_old_value = (args.OldValue != null); bool has_new_value = (args.NewValue != null); if (has_old_value && !has_new_value) { list_view.RemoveHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(ColumnHeaderClick)); foreach (var column in grid_view.Columns) { ListViewAttachedProperties.SetSortCommand(column, (ICommand)args.OldValue); } } if (!has_old_value && has_new_value) { list_view.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(ColumnHeaderClick)); foreach (var column in grid_view.Columns) { ListViewAttachedProperties.SetSortCommand(column, (ICommand)args.NewValue); } } }
void Initialize(IGridViewColumnDescsProvider descsProvider) { if (descsProvider is null) { return; } Debug2.Assert(this.descsProvider is null); this.descsProvider = descsProvider; descsProvider.Descs.SortedColumnChanged += OnSortedColumnChanged; listView.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(ListView_Click)); var gridView = (GridView)listView.View; gridView.Columns.CollectionChanged += GridView_Columns_CollectionChanged; var cols = gridView.Columns; var idToDesc = new Dictionary <int, GridViewColumnDesc>(); foreach (var desc in descsProvider.Descs.Columns) { idToDesc.Add(desc.Id, desc); } foreach (var col in cols) { int colId = GetId(col); if (!idToDesc.TryGetValue(colId, out var desc)) { throw new InvalidOperationException("Missing GridViewColumn Id"); } toDesc.Add(col, desc); col.Header = desc.Name; } UpdateColumns(); }
private static void OnAutoSortChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { ListView listView = o as ListView; if (listView == null) { return; } // Don't change click handler if a command is set if (GetSortCommand(listView) != null) { return; } bool oldValue = (bool)e.OldValue; bool newValue = (bool)e.NewValue; if (oldValue && !newValue) { listView.RemoveHandler(ButtonBase.ClickEvent, new RoutedEventHandler(ColumnHeader_Click)); } if (!oldValue && newValue) { listView.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(ColumnHeader_Click)); listView.DoWhenLoaded(SetGlyphForInitialSort); } }
public MainWindow() { InitializeComponent(); ListView.AddHandler(Thumb.DragDeltaEvent, new DragDeltaEventHandler(Target), true); }
static GridViewSort() { PropertyChangedCallback commandCallback = (o, e) => { ItemsControl listView = o as ItemsControl; if (listView != null) { if (!GetAutoSort(listView)) { if (e.OldValue != null && e.NewValue == null) { listView.RemoveHandler(ButtonBase.ClickEvent, new RoutedEventHandler(ColumnHeaderClick)); } if (e.OldValue == null && e.NewValue != null) { listView.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(ColumnHeaderClick)); } } } }; CommandProperty = DependencyProperty.RegisterAttached( "Command", typeof(ICommand), typeof(GridViewSort), new UIPropertyMetadata(null, commandCallback)); PropertyChangedCallback autoSortCallback = (o, e) => { ListView listView = o as ListView; if (listView != null) { // Don't change click handler if a command is set if (GetCommand(listView) == null) { bool oldValue = (bool)e.OldValue; bool newValue = (bool)e.NewValue; if (oldValue && !newValue) { listView.RemoveHandler(ButtonBase.ClickEvent, new RoutedEventHandler(ColumnHeaderClick)); } if (!oldValue && newValue) { listView.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(ColumnHeaderClick)); } } } }; AutoSortProperty = DependencyProperty.RegisterAttached( "AutoSort", typeof(bool), typeof(GridViewSort), new UIPropertyMetadata(false, autoSortCallback)); }
public Form TextBoxMultipleFor(string fieldName) { var items = new ObservableCollection <BindableDynamicDictionary>(); this.Model[fieldName] = items; items.Add(new BindableDynamicDictionary()); // start with one blank entry ListView lv = new ListView(); SetupListViewStyleForMultipleItems(lv); string dataTemplateXaml = @" <DataTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml""> <DockPanel > <Button Name=""AddRowButton"" Content=""Add"" DockPanel.Dock=""Right"" /> <Button Name=""RemoveRowButton"" Content=""Remove"" DockPanel.Dock=""Right"" /> <TextBox Text=""{Binding Path=Text, Mode=TwoWay}"" DockPanel.Dock=""Left"" /> </DockPanel> </DataTemplate> "; var template = (DataTemplate)XamlReader.Parse(dataTemplateXaml); lv.ItemTemplate = template; Binding itemSourceBind = new Binding(); itemSourceBind.Source = this.Model; itemSourceBind.Path = new PropertyPath(fieldName); BindingOperations.SetBinding(lv, ListView.ItemsSourceProperty, itemSourceBind); var buttonClick = new RoutedEventHandler((s, e) => { Button btn = e.OriginalSource as Button; if (string.Equals(btn.Name, "AddRowButton")) { // this is the add row button items.Add(new BindableDynamicDictionary()); } else if (string.Equals(btn.Name, "RemoveRowButton")) { var model = btn.DataContext as BindableDynamicDictionary; if (items.Count > 1) { items.Remove(model); } } }); // from: http://stackoverflow.com/questions/19706044/datatemplate-at-runtime-with-event lv.AddHandler(Button.ClickEvent, buttonClick); this.AddRowToHost(lv, fieldName); return(this); }
private void RegisterEvents() { RegisterEvents(listView); if (HasSortedColumn) { listView.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(GridViewColumnHeaderClickedHandler)); } }
public override void OnApplyTemplate() { base.OnApplyTemplate(); _selItemCol = (FrameworkElement)Template.FindName("PART_SelectedItemColumn", this); _selItemCol.PreviewMouseLeftButtonDown += OnSelectedItemContentClicked; _listView = (ListView)Template.FindName("PART_ListView", this); _listView.ItemContainerGenerator.StatusChanged += OnListViewItemsChanged; _listView.AddHandler(ScrollViewer.ScrollChangedEvent, new RoutedEventHandler(OnScrolled)); //_listView.AddHandler(ScrollBar.ScrollEvent, new RoutedEventHandler(OnScrolled)); _listView.AddHandler(Selector.SelectionChangedEvent, new RoutedEventHandler(OnListItemChanged)); _listView.AddHandler(PreviewMouseDownEvent, new RoutedEventHandler(OnListClicked)); _listView.AddHandler(LostFocusEvent, new RoutedEventHandler(OnListLostFocus)); //_popup = (Popup) Template.FindName("PART_Popup", this); _textBox = (TextBox)Template.FindName("PART_TextBox", this); _textBox.PreviewKeyDown += (o, e) => OnPreviewKeyDown(e); _textBox.LostFocus += OnTextBoxLostFocus; }
//creates the overview of the fleet private StackPanel createOverviewPanel() { StackPanel panelOverview = new StackPanel(); TextBlock txtFleetBoughtHeader = new TextBlock(); txtFleetBoughtHeader.Uid = "1003"; txtFleetBoughtHeader.Margin = new Thickness(0, 0, 0, 0); txtFleetBoughtHeader.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; txtFleetBoughtHeader.SetResourceReference(TextBlock.BackgroundProperty, "HeaderBackgroundBrush2"); txtFleetBoughtHeader.FontWeight = FontWeights.Bold; txtFleetBoughtHeader.Text = Translator.GetInstance().GetString("PageAirlineFleet", txtFleetBoughtHeader.Uid); panelOverview.Children.Add(txtFleetBoughtHeader); lvBoughtFleet = new ListView(); lvBoughtFleet.Background = Brushes.Transparent; lvBoughtFleet.SetResourceReference(ListView.ItemContainerStyleProperty, "ListViewItemStyle"); lvBoughtFleet.MaxHeight = (GraphicsHelpers.GetContentHeight() - 100) / 2; lvBoughtFleet.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(FleetHeaderClickedHandler), true); lvBoughtFleet.BorderThickness = new Thickness(0); lvBoughtFleet.View = this.Resources["FleetViewBoughtItem"] as GridView; panelOverview.Children.Add(lvBoughtFleet); lvBoughtFleet.ItemsSource = this.FleetDelivered.Where(f => f.Purchased == FleetAirliner.PurchasedType.Bought || f.Purchased == FleetAirliner.PurchasedType.BoughtDownPayment); TextBlock txtFleetLeasedHeader = new TextBlock(); txtFleetLeasedHeader.Uid = "1012"; txtFleetLeasedHeader.Margin = new Thickness(0, 5, 0, 0); txtFleetLeasedHeader.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; txtFleetLeasedHeader.SetResourceReference(TextBlock.BackgroundProperty, "HeaderBackgroundBrush2"); txtFleetLeasedHeader.FontWeight = FontWeights.Bold; txtFleetLeasedHeader.Text = Translator.GetInstance().GetString("PageAirlineFleet", txtFleetLeasedHeader.Uid); panelOverview.Children.Add(txtFleetLeasedHeader); lvLeasedFleet = new ListView(); lvLeasedFleet.Background = Brushes.Transparent; lvLeasedFleet.SetResourceReference(ListView.ItemContainerStyleProperty, "ListViewItemStyle"); lvLeasedFleet.MaxHeight = (GraphicsHelpers.GetContentHeight() - 100) / 2; lvLeasedFleet.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(FleetHeaderClickedHandler), true); lvLeasedFleet.View = this.Resources["FleetViewLeasedItem"] as GridView; panelOverview.Children.Add(lvLeasedFleet); lvLeasedFleet.ItemsSource = this.FleetDelivered.Where(f => f.Purchased == FleetAirliner.PurchasedType.Leased); return(panelOverview); }
/// <summary> /// Registers a ListView to allow sorting /// </summary> private static void RegisterSortableGridview(ListView grid, DependencyPropertyChangedEventArgs args) { if (args.NewValue is Boolean && (Boolean)args.NewValue) { grid.AddHandler(GridViewColumnHeader.ClickEvent, GridViewColumnHeaderClickHandler); } else { grid.RemoveHandler(GridViewColumnHeader.ClickEvent, GridViewColumnHeaderClickHandler); } }
public static object OnCoerceIsSortingEnabled(DependencyObject source, object value) { ListView lv = (source as ListView); //Ensure we dont have an invalid dependancy object of type ListView. if (lv == null) { throw new ArgumentException("This property may only be used on ListViews"); } lv.RemoveHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(ColumnHeader_Click)); lv.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(ColumnHeader_Click)); return(value); }
static void OnSortModeChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { ListView grid = sender as ListView; if (grid != null) { if ((ListViewSortMode)args.NewValue != ListViewSortMode.None) { grid.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(GridViewColumnHeaderClickHandler)); } else { grid.RemoveHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(GridViewColumnHeaderClickHandler)); } } }
private static void OnSortEnabledChanged(DependencyObject dobj, DependencyPropertyChangedEventArgs e) { ListView listView = dobj as ListView; if (listView != null) { if ((bool)e.NewValue) { listView.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(OnGridViewColumnHeaderClicked)); } else { listView.RemoveHandler(ButtonBase.ClickEvent, new RoutedEventHandler(OnGridViewColumnHeaderClicked)); } } }
internal ChooseItemsPage(ToolboxControlledPageDataSource dataSource) { _data = dataSource; if (_data == null) { throw new ArgumentException("Data source cannot be null"); } DataContext = dataSource; InitializeComponent(); AddColumns(dataSource); InitializeSortColumnFromDataSource(); ListView.AddHandler(Thumb.DragDeltaEvent, new DragDeltaEventHandler(OnColumnHeaderDividerDragged), true); ListView.SelectionChanged += ListView_SelectionChanged; _data.PropertyChanged += OnProertyChanged; SetViewFilterAndSubscribeToItemsCollectionChanges(); }
private static void OnHeaderSortPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { ListView listView = sender as ListView; if (listView == null) { throw new InvalidOperationException("HeaderSort Property can only be set on a ListView"); } if ((bool)e.NewValue) { listView.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(OnListViewHeaderClick)); } else { listView.RemoveHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(OnListViewHeaderClick)); } }
} /* method ListViewSorter OnColumnHeaderClick */ /// <summary> /// Handles changes of the ListView IsSortable attached property /// </summary> /// <param name="obj"></param> /// <param name="e"></param> /// <remarks> /// Sets or clears the attached ClickEvent handler /// </remarks> static private void OnIsSortableChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e) { ListView lv = obj as ListView; if (obj != null) { if (e.NewValue is bool) { if ((bool)e.NewValue) { lv.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(OnColumnHeaderClick)); } else { lv.RemoveHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(OnColumnHeaderClick)); } } } } /* method ListViewSorter OnIsSortableChanged */
private static void OnRegisterSortableGrid(DependencyObject obj, DependencyPropertyChangedEventArgs args) { if ((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue)) { return; } ListView listView = obj as ListView; if ((listView != null) && !_listViewDefinitions.ContainsKey(listView.Name)) { try { _listViewDefinitions.Add(listView.Name, new ListViewSortItem(Activator.CreateInstance(Type.GetType(GetCustomListViewSorter(obj))) as IListViewCustomComparer, null, ListSortDirection.Ascending)); listView.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(GridViewColumnHeaderClickedHandler)); } catch { } } }
//registers to the column click of the header to apply the sort private static void RegisterSortHandler(DependencyObject obj, DependencyPropertyChangedEventArgs args) { ListView grid = obj as ListView; if (grid == null) { return; } GridViewSortHandler handler = args.NewValue as GridViewSortHandler; if (handler != null) { //register to click events of column header grid.AddHandler(GridViewColumnHeader.ClickEvent, columnClickhandler); } }
private static void OnHeaderSortPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { ListView listView = sender as ListView; if (listView == null) { throw new InvalidOperationException(ResourceHelper.FindText("InvalidHeaderSortHost")); } if ((bool)e.NewValue) { listView.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(OnListViewHeaderClick)); listView.Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(() => InitializeSortDirection(listView))); } else { listView.RemoveHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(OnListViewHeaderClick)); } }
private static void ModifyColumnHeaderClick(ListView listView, bool subcribe) { ModuleProc PROC = new ModuleProc("", "ModifyColumnHeaderClick"); try { if (subcribe) { listView.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(OnGridViewColumnHeaderClick)); } else { listView.RemoveHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(OnGridViewColumnHeaderClick)); } } catch (Exception ex) { Log.Exception(PROC, ex); } }
/// <summary> /// Called when the IsSortedWithColumnHeader property changes. /// </summary> /// <param name="o">The o.</param> /// <param name="e"> /// The <see cref="System.Windows.DependencyPropertyChangedEventArgs" /> instance containing the event /// data. /// </param> private static void OnIsSortedWithColumnHeaderChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { ListView listView = o as ListView; if (listView != null) { bool oldValue = (bool)e.OldValue; bool newValue = (bool)e.NewValue; if (oldValue && !newValue) { listView.RemoveHandler(ButtonBase.ClickEvent, new RoutedEventHandler(ColumnHeader_Click)); } if (!oldValue && newValue) { listView.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(ColumnHeader_Click)); } } }
private static void OnAutoSortPropertyChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { ListView listView = o as ListView; if (listView != null) { if (GetCommand(listView) == null) // Don't change click handler if a command is set { bool oldValue = (bool)e.OldValue; bool newValue = (bool)e.NewValue; if (oldValue && !newValue) { listView.RemoveHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(ColumnHeader_Click)); } if (!oldValue && newValue) { listView.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(ColumnHeader_Click)); } } } }
private static void OnIsEnabledPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ListView listView = d as ListView; if (listView != null) { if (e.NewValue is bool) { if ((bool)e.NewValue) { listView.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(OnColumnHeaderClicked)); sorting.Add(listView, new Sorter()); } else { listView.RemoveHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(OnColumnHeaderClicked)); sorting.Remove(listView); } } } }
public MainListView() { // Required to initialize variables InitializeComponent(); //using Telerik.Windows; ListView.AddHandler(RadDragAndDropManager.DropQueryEvent, new EventHandler <DragDropQueryEventArgs>(TreeDropQuery), true); ListView.AddHandler(RadDragAndDropManager.DropInfoEvent, new EventHandler <DragDropEventArgs>(TreeDropInfo), true); ListView.PreviewDragEnded += PreviewDragEnded; InternalCommands.ExcelExportStart.RegisterCommand(new DelegateCommand(ExcelExportExecute)); //InternalCommands.ItemSelected.RegisterCommand(new DelegateCommand<ListItemModelBase>(ItemSelected)); //ListView.RowLoaded += new EventHandler<Telerik.Windows.Controls.GridView.RowLoadedEventArgs>(ListView_RowLoaded); //ListView.SelectionChanged += new EventHandler<SelectionChangeEventArgs>(ListView_SelectionChanged); //ListView.ItemContainerGenerator.StatusChanged += new EventHandler(ItemContainerGenerator_StatusChanged); //ListView.RowIsExpandedChanged += new EventHandler<RowEventArgs>(ListView_RowIsExpandedChanged); //ListView.DataLoaded += new EventHandler<System.EventArgs>(ListView_DataLoaded); //ListView.Export(new MemoryStream(),new GridViewExportOptions() {Format = ExportFormat.Csv}); }
public static void EnableGridViewSortChanged( object sender, DependencyPropertyChangedEventArgs e) { ListView lv = sender as ListView; if (lv == null) { return; } if (!(e.NewValue is bool)) { return; } bool enableGridViewSort = (bool)e.NewValue; if (enableGridViewSort) { lv.AddHandler( GridViewColumnHeader.ClickEvent, new RoutedEventHandler(EnableGridViewSortGVHClicked) ); if (lv.View == null) { lv.Loaded += new RoutedEventHandler(EnableGridViewSortLVLoaded); } else { EnableGridViewSortLVInitialize(lv); } } else { lv.RemoveHandler( GridViewColumnHeader.ClickEvent, new RoutedEventHandler(EnableGridViewSortGVHClicked) ); } }