コード例 #1
0
        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);
        }
コード例 #2
0
 public MultiSelectorWindowAutomationPeer(MultiSelectorWindow selectorWindow) : base(selectorWindow)
 {
 }