Привязка данных WPF

Кто-либо может указать на меня на хороший ресурс (или бросить меня подсказка) показать мне, как сделать DataBinding к средствам управления (ComboBox, ListBox, и т.д.) в WPF? Я в чем-то вроде потери, когда у всего моего WinForms niceities отнимают меня, и я не все это яркое для запуска с...

11
задан hims056 29 January 2013 в 12:25
поделиться

6 ответов

Я нахожу учебные видео в Windows Client .NET одинаково потрясающий. ТВ Dot-Net-Rocks также покрыло его некоторое время назад.

3
ответ дан 3 December 2019 в 06:49
поделиться

Лучший ресурс, который я нашел для привязки данных WPF, является блогом Bea Costa. Запустите с первого сообщения и читайте вперед. Это является потрясающим.

5
ответ дан 3 December 2019 в 06:49
поделиться

Вот другой хороший ресурс из MSDN: Обзор Привязки данных.

2
ответ дан 3 December 2019 в 06:49
поделиться

в коде позади - устанавливает DataContext Вашего поля списка, равного набору, с которым Вы связываете.

private void OnInit(object sender, EventArgs e)
{
  //myDataSet is some IEnumerable 

  // myListBox is a ListBox control.
  // Set the DataContext of the ListBox to myDataSet
  myListBox.DataContext = myDataSet;
}

В XAML Поле списка может объявить, какие свойства это связывает с использованием "Обязательного" синтаксиса.

<ListBox Name="myListBox" Height="200"
  ItemsSource="{Binding Path=BookTable}"
  ItemTemplate  ="{StaticResource BookItemTemplate}"/>
3
ответ дан 3 December 2019 в 06:49
поделиться

И еще некоторые ссылки, на всякий случай вышеупомянутое не было достаточно:

Windows Presentation Foundation - темы практического руководства привязки данных
- Приблизительно 30 статей 'How To' из MSDN.
"Темы в этом разделе описывают, как использовать привязку данных для привязки элементов с данными из множества источников данных в форме объектов общеязыковой среды выполнения (CLR) и XML".

Перемещение к привязке данных WPF один шаг за один раз
- Гуру WPF Josh Smith
"Эта статья объясняет абсолютные основы привязки данных WPF. Это показывает четыре различных пути, как выполнить ту же простую задачу. Каждое повторение придвигается поближе к самому компактному, XAML-только возможной реализации. Эта статья для людей без опыта в привязке данных WPF".

3
ответ дан 3 December 2019 в 06:49
поделиться

Существует три вещи, которые необходимо сделать:

  1. Свяжите ItemsSource ComboBox к списку опций.
  2. Свяжите SelectedItem со свойством, которое содержит выбор.
  3. Установите ComboBox. ItemTemplate к DataTemplate для ComboBoxItem.

Так, например, если Ваш объект контекста данных является человеком, имеющим адреса электронной почты, и Вы хотите выбрать их основное устройство, у Вас могли бы быть классы с этими подписями:

public class EmailAddress
{
    public string AddressAsString { get; set; }
}

public class Person
{
    public IEnumerable<EmailAddress> EmailAddresses { get; }
    public EmailAddress MainEmailAddress { get; set; }
}

Затем Вы могли создать поле комбинированного списка как это:

<ComboBox ItemsSource="{Binding EmailAddresses}" SelectedItem="{Binding MainEmailAddress}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <ComboBoxItem Content="{Binding AddressAsString}"/>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

Теперь необходимо реализовать INotifyPropertyChanged и в Человеке и в EmailAddress. Для набора EmailAddresses Вы могли поддержать его ObjservableCollection.

Или как альтернатива можно использовать Средства управления Обновлением.NET. Это - проект с открытым исходным кодом, который заменяет привязку данных и не требует INotifyPropertyChanged. Можно использовать любой набор, имеет смысл поддерживать свойство EmailAddresses. XAML работает то же как выше, за исключением того, что Вы импортируете UpdateControls. Пространство имен XAML и замена {Привязка...} с {u:Update...}.

2
ответ дан 3 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: