public static bool ShowDialog <T>(IEnumerable <T> elements, out IEnumerable <T> selectedElements, Func <T, ImageSource> elementIcon = null, Func <T, string> elementText = null, string title = null, string message = null, Window owner = null) { if (title == null) { title = SelectorMessage.SelectAnElement.NiceToString(); } if (message == null) { message = SelectorMessage.PleaseSelectAnElement.NiceToString(); } if (elementIcon == null) { elementIcon = o => null; } if (elementText == null) { elementText = o => o.ToString(); } MultiSelectorWindow w = new MultiSelectorWindow() { WindowStartupLocation = owner == null ? WindowStartupLocation.CenterScreen : WindowStartupLocation.CenterOwner, Owner = owner, Title = title, Message = message, Elements = elements.Select(e => new ElementInfo() { Selected = false, Element = e, Image = elementIcon(e), Text = elementText(e) }).ToArray() }; bool res = w.ShowDialog() ?? false; if (res) { selectedElements = w.SelectedItems <T>(); } else { selectedElements = default(IEnumerable <T>); } return(res); }
public MultiSelectorWindowAutomationPeer(MultiSelectorWindow selectorWindow) : base(selectorWindow) { }