Windows Presentation Foundation System Object Dispatcher Object Application
Классы Windows Presentation Foundation System. Object Dispatcher. Object Application Dependency. Object Navigation. Service Framework. Template Visual Content. Element UIElement Framework. Content. Element Style Framework. Element Page Shape Text. Block Content. Control Range. Base Text. Box. Base Frame Slider Text. Box Window Progress. Bar Rich. Text. Box Grid Items. Control Menu Context. Menu Headered. Items. Control Menu. Item Button Toolbar Tree. View. Item Selector Repeat. Button Tab. Control Toggle. Button Check. Box Canvas Menu. Base Navigation. Window Button. Base Panel Tool. Bar. Tray Control Radio. Button List. Box List. View Tree. View Combo. Box
Привязка к коллекции в коде. Пример ü В примере выполняется привязка к коллекциям Observable. Collection<Data. Item_3> и List<Data. Item_3>, которые находятся в объекте data типа Data_3 и доступны через определенные в классе Data_3 свойства Data. From. Observable. Collection и Data. From. List. ü В привязке к элементу управления list. Box_obs для всех свойств привязки используются значения по умолчанию. ü Привязка к элементу управления list. Box_lst выполнена с помощью объекта Binding, что дает возможность настроить свойства привязки. public partial class Window 1 : Window { Data_3 data = new Data_3(); private void Window_Loaded(object sender, Routed. Event. Args e) { data. Add. Defaults(); list. Box_obs. Items. Source = data. Data. From. Observable. Collection; list. Box_obs. Is. Synchronized. With. Current. Item = true; // для привязки к // выбранному элементу списка Binding bd = new Binding(); bd. Source = data; bd. Path = new Property. Path("Data. From. List"); bd. Mode = Binding. Mode. Two. Way; list. Box_lst. Set. Binding(List. Box. Items. Source. Property, bd); list. Box_lst. Is. Synchronized. With. Current. Item = true; } […code…] }
Привязка к коллекции в разметке. Пример üВ примере в ресурсах главного окна создаются объекты типа Data_3 с ключом key_data и типа DTime. Converter с ключом key_converter. <Window x: Class="Wpf_Binding_Items. Control. Window 1" xmlns="http: //schemas. microsoft. com/winfx/2006/xaml/presentation" xmlns: x="http: //schemas. microsoft. com/winfx/2006/xaml" xmlns: zz="clr-namespace: Custom_Data" xmlns: yy="clr-namespace: Wpf_Binding_Items. Control" Title="Window 1" Height="499" Width="630" Loaded="Window_Loaded"> <Window. Resources> <zz: Data_3 x: Key="key_data"/> <yy: DTime. Converter x: Key="key_converter"/> </Window. Resources> […code…] </Window> ü Для элемента управления List. Box выполняется привязка к свойству Data. From. List объекта, который находится в ресурсах и имеет ключ key_data. <List. Box Items. Source="{Binding Source={Static. Resource key_data}, Path=Data. From. List}" Is. Synchronized. With. Current. Item="True"/>
Представление коллекции Collection. View. Source. Привязка в коде. Пример ü В примере создается представление для коллекции Observable. Collection<Data. Item_4>, которая находится в объекте data_rc типа Data_4 и доступна через определенное в классе Data_4 свойство Data. From. Observable. Collection. Для представления используется тип Collection. View. Source. К представлению применяется фильтр, который включает в представление только те элементы исходной коллекции, у которых первый символ в свойстве Text – это ‘A’. ü Условие фильтрации реализуется с помощью обработчика Filter. By. First. Symbol события Filter, определенного в классе Collection. View. Source. private void button_filter_first_symbol_Click(object sender, Routed. Event. Args e) { Collection. View. Source view_1 = new Collection. View. Source(); view_1. Source = data_rc. Data. From. Observable. Collection; view_1. Filter += new Filter. Event. Handler(Filter. By. First. Symbol); list. Box_view_code. Items. Source = view_1. View; } void Filter. By. First. Symbol(object source, Filter. Event. Args args) { Data. Item_3 curr = args. Item as Data. Item_3; if (curr != null) { if (curr. Text[0] == 'A') args. Accepted = true; else args. Accepted = false; } }
Представление коллекции List. Collection. View. Привязка в коде. Пример ü В примере для представления коллекции используется тип List. Collection. View. К представлению применяется фильтр, реализованный с помощью метода обратного вызова dbl. Average. Filter, который определен в классе–источнике данных и который передается представлению через свойство Filter класса List. Collection. View. private void button_filter_over. Average_Click(object sender, Routed. Event. Args e) { List. Collection. View list_Collection. View = new List. Collection. View(data_rc. Data. From. Observable. Collection); list_Collection. View. Filter = new Predicate<object>(data_rc. dbl. Average. Filter); list. Box_view_code. Items. Source = list_Collection. View; } ü Метод dbl. Average. Filter отбирает только те элементы, у которых значение свойства Double. Value больше среднего значения этого свойства для всех элементов коллекции. Среднее значение возвращает свойство dbl. Average. public class Data_4 { Observable. Collection<Data. Item_3> coll = new Observable. Collection<Data. Item_3>(); …code] public bool dbl. Average. Filter( object item) { Data. Item_3 item_3 = item as Data. Item_3; if (item_3 != null) return item_3. Double. Value > dbl. Average; else return false; } }
Создание представления коллекции в XAML. Пример ü В примере в разметке в ресурсах создается объект пользовательского типа Data_4 с ключом key_data. ü В ресурсах создается представление Collection. View. Source для коллекции, которая доступна через свойство Data. From. Observable. Collection класса Data_4. В представлении определяется фильтр с помощью метода Filter. By. Date. <Window x: Class="Wpf_Binding_Collection. View. Window 1" xmlns="http: //schemas. microsoft. com/winfx/2006/xaml/presentation" xmlns: x="http: //schemas. microsoft. com/winfx/2006/xaml" xmlns: zz="clr-namespace: Custom_Data" xmlns: yy="clr-namespace: Wpf_Binding_Collection. View" Title="Window 1" Height="496" Width="702" Loaded="Window_Loaded"> <Window. Resources> <zz: Data_4 x: Key="key_data"/> <Collection. View. Source= "{ Binding Source={Static. Resource key_data}, Path=Data. From. Observable. Collection}" x: Key="key_view" Filter="Filter. By. Date"/> </Window. Resources> […code…] </Window> ü Представление Collection. View. Source с ключом key_view_1 используется в привязке к элементу управления List. Box. <List. Box Grid. Column="1" Margin="10, 30, 10, 8" Name="list. Box_view_xaml" Items. Source ="{Binding Source={Static. Resource key_view}}"/>
- Slides: 11