Архив автора
Команды событий мыши для MVVM
Если Вы когда нибудь хотели использовать MouseEventArgs в ViewModel, вот способ это сделать:
Сортировка ObservableCollection с помощью LINQ
Способ соритровки коллекции ObservableCollection
... ObservableCollection<string> _animals = new ObservableCollection<string>() { "Cat", "Dog", "Bear", "Lion", "Mouse", "Horse", "Rat", "Elephant", "Kangaroo", "Lizard", "Snake", "Frog", "Fish", "Butterfly", "Human", "Cow", "Bumble Bee"}; _animals = new ObservableCollection<string>(_animals.OrderBy(i => i)); ...
Вот и всё!
Динамический выбор шаблона DataTemplateSelector
Бывает ситуация, когда заранее не знаеш, какой шаблон необходимо подключить. Для этого WPF предусматривает DataTemplateSelector. Давайте на примере посмротрим, как всё это работает.
Создадим простое WPF приложение. Разместим на форме ComboBox и ContentPresenter:
Прочитать остальную часть записи »
Обновление списков с помощью LINQ
Столкнулся с задачей обновления значение в одном списке, если такое же значение есть в другом списке.
Допустим, у нас есть два класса:
Первый:
class First { public int Id; public string Name; public bool IsSelected; }
События C#
В следующем примере показано как объявить и инициировать событие, использующее EventHandler в качестве базового типа делегата. Публикация событий, соответствующих рекомендациям .NET Framework:
Прочитать остальную часть записи »
Изменение языка раскладки клавиатуры в WPF
InputLanguageManger предоставляет возможности для управления языками ввода в Windows Presentation Foundation (WPF). С его помощью можно очень просто изменить язык ввода текстового поля:
try { InputLanguageManager.SetInputLanguage (tbInput, CultureInfo.CreateSpecificCulture("en")); } catch { }
Или же можно изменить в XAML
<TextBox x:Name="tbInput" InputLanguageManager.InputLanguage="ru-RU" />
Всё очень просто…
ObservableCollection IndexOf
Как то раз, необходимо было выяснить, содержит ли коллекция ObservableCollection элемент. Благо, у ObservableCollection есть метод IndexOf который возвращает индекс элемента, если он есть в коллекции. Но не всё так гладко. Рассмотрим пример ниже:
Прочитать остальную часть записи »
StringFormat атрибут
WPF предоставляет возможность задать формат выводимого значения прямо в XAML, без необходимости форматирования значения в коде. В .NET 3.5 появился новый атрибут, который позволяет это сделать – StringFormat
Отображение double в currency
<TextBlock Text="{Binding DoubleValue, StringFormat={}{0:C}}" />
ComboBox MaxDropDownItems в WPF
В Windows Forms у элемента управления ComboBox есть свойство MaxDropDownItems, которое позволяет задавать количество элементов отображаемых в выпадающем списке. К сожалению, разработчики WPF не реализовали это свойство. Но, к счастью, они создали новый инструмент, который позволяет это сделать: присоединяемые свойства зависимости. То, что мы сейчас будем делать, возможно только для выпадающих списков, высота элементов которых одинакова.
Прочитать остальную часть записи »