/// <summary>Callback for Windows.</summary> /// <param name="hwnd">Window handle of the browse dialog box.</param> /// <param name="uMsg">Dialog box event that generated the statusMessage.</param> /// <param name="lParam">Value whose meaning depends on the event specified in uMsg.</param> /// <param name="lpData">Application-defined value that was specified in the lParam member of the BROWSEINFO structure used in the call to SHBrowseForFolder.</param> /// <returns> /// Returns 0 except in the case of BFFM_VALIDATEFAILED. For that flag, returns 0 to dismiss the dialog or nonzero to keep the dialog displayed. /// </returns> //[CLSCompliant(false)] private int OnBrowseEvent(IntPtr hwnd, BrowseForFolderMessages uMsg, IntPtr lParam, IntPtr lpData) { var messsage = uMsg; href = new HandleRef(this, hwnd); switch (messsage) { case BrowseForFolderMessages.BFFM_INITIALIZED: // Dialog is being initialized, so set the initial parameters if (!string.IsNullOrEmpty(Caption)) { SetWindowText(href, Caption); } if (!string.IsNullOrEmpty(SelectedItem)) { SendMessage(href, (uint)BrowseForFolderMessages.BFFM_SETSELECTIONW, (IntPtr)1, SelectedItem); } if (Expanded) { SendMessage(href, (uint)BrowseForFolderMessages.BFFM_SETEXPANDED, (IntPtr)1, rootPidl.DangerousGetHandle()); } if (!string.IsNullOrEmpty(OkText)) { SendMessage(href, (uint)BrowseForFolderMessages.BFFM_SETOKTEXT, (IntPtr)0, OkText); } Initialized?.Invoke(this, new FolderBrowserDialogInitializedEventArgs(hwnd)); initialized = true; return(0); case BrowseForFolderMessages.BFFM_SELCHANGED: try { if (!initialized || pidl?.DangerousGetHandle() == lParam) { return(0); } var tmpPidl = new PIDL(lParam, false, false); var str = GetNameForPidl(tmpPidl); if (string.IsNullOrEmpty(str)) { return(0); } SelectedItem = str; pidl = tmpPidl; } catch { return(0); } SelectedItemChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SelectedItem))); return(0); case BrowseForFolderMessages.BFFM_VALIDATEFAILEDA: case BrowseForFolderMessages.BFFM_VALIDATEFAILEDW: if (InvalidFolderSelected != null) { var folderName = messsage == BrowseForFolderMessages.BFFM_VALIDATEFAILEDA ? Marshal.PtrToStringAnsi(lParam) : Marshal.PtrToStringUni(lParam); var e = new InvalidFolderEventArgs(folderName, true); InvalidFolderSelected?.Invoke(this, e); return(e.DismissDialog ? 0 : 1); } return(0); default: return(0); } }
/// <summary> /// Selects the item. /// </summary> /// <param name="item">The item.</param> /// <param name="raiseChange">if set to <c>true</c> [raise change].</param> protected async System.Threading.Tasks.Task SelectItem(object item, bool raiseChange = true) { if (!Multiple) { if (object.Equals(item, selectedItem)) { return; } selectedItem = item; if (!string.IsNullOrEmpty(ValueProperty)) { internalValue = PropertyAccess.GetItemOrValueFromProperty(item, ValueProperty); } else { internalValue = item; } SetSelectedIndexFromSelectedItem(); SelectedItemChanged?.Invoke(selectedItem); } else { if (selectedItems.IndexOf(item) == -1) { selectedItems.Add(item); } else { selectedItems.Remove(item); } if (!string.IsNullOrEmpty(ValueProperty)) { System.Reflection.PropertyInfo pi = PropertyAccess.GetElementType(Data.GetType()).GetProperty(ValueProperty); internalValue = selectedItems.Select(i => PropertyAccess.GetItemOrValueFromProperty(i, ValueProperty)).AsQueryable().Cast(pi.PropertyType); } else { var firstElement = Data.Cast <object>().FirstOrDefault(); var elementType = firstElement != null?firstElement.GetType() : null; if (elementType != null) { internalValue = selectedItems.AsQueryable().Cast(elementType); } else { internalValue = selectedItems; } } } if (raiseChange) { await ValueChanged.InvokeAsync(object.Equals(internalValue, null)?default(T) : (T)internalValue); if (FieldIdentifier.FieldName != null) { EditContext?.NotifyFieldChanged(FieldIdentifier); } await Change.InvokeAsync(internalValue); } StateHasChanged(); }
/// <summary> /// Selects the item from value. /// </summary> /// <param name="value">The value.</param> protected virtual void SelectItemFromValue(object value) { if (value != null && View != null) { if (!Multiple) { if (!string.IsNullOrEmpty(ValueProperty)) { if (typeof(EnumerableQuery).IsAssignableFrom(View.GetType())) { SelectedItem = View.OfType <object>().Where(i => object.Equals(PropertyAccess.GetValue(i, ValueProperty), value)).FirstOrDefault(); } else { SelectedItem = View.AsQueryable().Where($@"{ValueProperty} == @0", value).FirstOrDefault(); } } else { selectedItem = internalValue; } SetSelectedIndexFromSelectedItem(); SelectedItemChanged?.Invoke(selectedItem); } else { var values = value as dynamic; if (values != null) { if (!string.IsNullOrEmpty(ValueProperty)) { foreach (object v in values) { dynamic item; if (typeof(EnumerableQuery).IsAssignableFrom(View.GetType())) { item = View.OfType <object>().Where(i => object.Equals(PropertyAccess.GetValue(i, ValueProperty), v)).FirstOrDefault(); } else { item = View.AsQueryable().Where($@"{ValueProperty} == @0", v).FirstOrDefault(); } if (!object.Equals(item, null) && selectedItems.IndexOf(item) == -1) { selectedItems.Add(item); } } } else { selectedItems = ((IEnumerable)values).Cast <object>().ToList(); } } } } else { selectedItem = null; } }
void OnSelectedItemChanged(object sender, GenListItemEventArgs e) { _flyoutMenu.TryGetValue(e.Item.Data as MItem, out Element element); SelectedItemChanged?.Invoke(this, new SelectedItemChangedEventArgs(element, -1)); }
private async Task OpenDetailAsync(object selectedItem) { if (selectedItem != null) { var wg = GridView.ItemsPanelRoot as VariableSizedWrapGrid; var itemsPerRow = Math.Floor(wg.ActualWidth / wg.ItemWidth); var currentIndexOfDetailItem = GridView.Items.IndexOf(DetailGridItem); var itemIndex = GridView.Items.IndexOf(selectedItem); if (currentIndexOfDetailItem > -1 && currentIndexOfDetailItem < itemIndex) { itemIndex--; } var row = Math.Min(((int)(itemIndex / itemsPerRow) + 1) * itemsPerRow, GridView.Items.Count); if (DetailGridItem == null) { DetailGridItem = new DetailGridItem(); DetailGridItem.DetailItemTemplate = DetailItemTemplate; DetailGridItem.Grid = this; Binding bgBinding = new Binding(); bgBinding.Path = new PropertyPath(nameof(DetailBackground)); bgBinding.Source = this; DetailGridItem.SetBinding(DetailGridItem.BackgroundProperty, bgBinding); } else { if (currentIndexOfDetailItem != row) { GridView.Items.Remove(DetailGridItem); if (Animate) { await Task.Delay(55); } } DetailGridItem.DataContext = null; } if (IsOverviewDataSameAsDetailData) { DetailItem = selectedItem; //Else = user should do it manualy by listening to the SelectedIndexChanged //or something like that and set the DetailItem manually } if (!GridView.Items.Contains(DetailGridItem)) { if (row < GridView.Items.Count(i => !(i is DetailGridItem))) { GridView.Items.Insert((int)row, DetailGridItem); } else { GridView.Items.Add(DetailGridItem); } } var itemContainer = GridView.ContainerFromItem(DetailGridItem) as GridViewItem; if (itemContainer != null) { itemContainer.SetValue(VariableSizedWrapGrid.ColumnSpanProperty, itemsPerRow); itemContainer.SetValue(VariableSizedWrapGrid.RowSpanProperty, DetailRowSpan); } selectedItemChangedInternally = true; SelectedItem = selectedItem; SelectedItemChanged?.Invoke(this, null); selectedItemChangedInternally = false; } }
// Raises the event on the automation thread (but the SyncContext.Post here is redundant) void OnSelectedItemChanged() { Logger.WindowWatcher.Verbose($"PopupList SelectedItemChanged {SelectedItemText} ListBounds: {ListBounds}"); _syncContextAuto.Post(_ => SelectedItemChanged?.Invoke(this, EventArgs.Empty), null); }
/// <summary> /// Fires the SelectedItemChanged event. /// </summary> protected virtual void OnSelectedItemChanged() { SelectedItemChanged?.Invoke(this, EventArgs.Empty); }
private void FireSelectedItemChanged(PersonViewModel oldValue, PersonViewModel newValue) { SelectedItemChanged?.Invoke(this, new ValueChangedEventArgs <PersonViewModel>(oldValue, newValue)); }
private void RaiseSelectedItemChanged(object oldItem, object newItem) { SelectedItemChanged?.Invoke(this, new SelectedItemChangedEventArgs(oldItem, newItem)); }
protected void OnSelectedItemChanged() { SelectedItemChanged?.Invoke(this, new EventArgs()); }
public void OnSelectedItemChanged(BoardItem selectedItem) { if (SelectedItemChanged != null) SelectedItemChanged.Invoke(selectedItem); }
/// <summary> /// Raises the <see cref="SelectedItemChanged"/> event. /// </summary> /// <param name="eventArgs"> /// <see cref="EventArgs"/> object that provides the arguments for the event. /// </param> /// <remarks> /// <strong>Notes to Inheritors:</strong><br/> When overriding /// <see cref="OnSelectedItemChanged"/> in a derived class, be sure to call the base class's /// <see cref="OnSelectedItemChanged"/> method so that registered delegates receive the /// event. /// </remarks> protected virtual void OnSelectedItemChanged(EventArgs eventArgs) { SelectedItemChanged?.Invoke(this, eventArgs); }
private void Item_SelectedItem(UserTreeViewItem sender) => SelectedItemChanged?.Invoke(sender);
public override void Selected(UIPickerView picker, nint row, nint component) { _selectedItem = _itemsSource == null ? null : _itemsSource.ElementAtIndex((int)row); SelectedItemChanged?.Invoke(this, EventArgs.Empty); }
private void OnSelectedItemChanged() => SelectedItemChanged?.Invoke(this, EventArgs.Empty);
void Initialize(EvasObject parent) { _box = new Native.Box(parent) { AlignmentX = -1, AlignmentY = -1, WeightX = 1, WeightY = 1 }; SetContent(_box); _menu = new GenList(parent) { BackgroundColor = EColor.Transparent, Style = "solid/default", }; _menu.ItemSelected += (s, e) => { _flyoutMenu.TryGetValue(e.Item.Data as Item, out Element element); SelectedItemChanged?.Invoke(this, new SelectedItemChangedEventArgs(element, -1)); }; _menu.Show(); _box.PackEnd(_menu); _defaultClass = new GenItemClass("double_label") { GetTextHandler = (obj, part) => { if (part == "elm.text") { return(((Item)obj).Title); } else { return(null); } }, GetContentHandler = (obj, part) => { if (part == "elm.swallow.icon") { var icon = ((Item)obj).Icon; if (icon != null) { var image = new Native.Image(parent) { MinimumWidth = System.Maui.Maui.ConvertToScaledPixel(24), MinimumHeight = System.Maui.Maui.ConvertToScaledPixel(24) }; var result = image.LoadFromImageSourceAsync(icon); return(image); } else { return(null); } } else { return(null); } } }; }
public void FireSelectedItemChanged(ITestItem testItem) { SelectedItemChanged?.Invoke(new TestItemEventArgs(testItem)); }
/// <summary> /// On SelectedItem changed /// </summary> /// <param name="oldValue">Old Value</param> /// <param name="newValue">New Value</param> protected virtual void OnSelectedItemChanged(object oldValue, object newValue) { SelectedItemChanged?.Invoke(this, EventArgs.Empty); }
protected Task SelectedListGroupItemChanged(string text) { SelectedItem = GetItemBySelectedText(text); return(SelectedItemChanged.InvokeAsync(SelectedItem)); }
private void SubFile_SelectedItemChanged(UserTreeViewItem sender) => SelectedItemChanged?.Invoke(sender);
void UserControl1_MouseDown(object sender, MouseEventArgs e) { // See where the mouse is clicked // If on an object, activate that object // If on the background, activate scrolling Vector2 location = viewport.TransformToViewport(ClientRectangle, e.Location); //IClickable last = clickedObject; DateTime t = DateTime.Now; for (int i = 0; i < 100; i++) { float closest = float.PositiveInfinity; foreach (Object o in this.objects) { IClickable c = o as IClickable; if (c != null) { float distance = c.IsPointOnObject(location); //Console.WriteLine("Distance = " + distance); if (distance < closest) { closest = distance; clickedObject = c; } } } } double time = (DateTime.Now - t).TotalMilliseconds; Console.WriteLine("Took " + time + " Milliseconds"); //if (clickedObject != null) //{ // if (last != clickedObject) // { // last.UnHover(); // } // clickedObject.Hover(location); //} if (clickedObject == null) { clickedObject = viewport as IClickable; } if (this.SelectedItemChanged != null) { SelectedItemChanged.Invoke(clickedObject, EventArgs.Empty); } if (e.Button == MouseButtons.Left) { clickedObject.MouseDownLeft(location); } else if (e.Button == MouseButtons.Right) { clickedObject.MouseDownRight(new Vector2(e.Location.X, e.Location.Y)); } this.Invalidate(); }
private void CddColorSelectedIndexChanged(object sender, EventArgs e) { SelectedItemChanged?.Invoke(this, EventArgs.Empty); }
protected virtual void OnSelectedItemChanged(ItemEventArgs e) { SelectedItemChanged?.Invoke(this, e); }
private void RaiseSelectedItemChanged(object value) { SelectedItemChanged?.Invoke(this, value); }