Представление Модель, Путаница в свойствах зависимостей - PullRequest
0 голосов
/ 08 июня 2011

Я занимаюсь разработкой пользовательского элемента управления WPF и не знаю, как использовать свойство зависимостей.Моя модель представления содержит 2 свойства:

class Customer {
  string Name;
  string ID;
}

Мой пользовательский элемент управления отвечает за отображение этих полей.

Q1: Нужно ли мне определять какие-либо свойства зависимостей (например, «Имя», «ИД»") в моем пользовательском элементе управления?

Q2: Я использую ItemsControl для отображения списка клиентов.Как объект Customer передается в мой пользовательский элемент управления?Это делается через DataContext или мне нужно добавить свойство зависимостей «Клиент» в моем элементе управления и в xaml связать «Клиент» с «чем-то» (что это такое)?

<ItemPresenter>
   <MyCustomControl  Customer="??what should i put here???"/>
</ItemPresender>

1 Ответ

1 голос
/ 08 июня 2011

Q1.Почему у вас есть пользовательский элемент управления?Обычно вы просто создаете UserControl (в WPF есть различие между UserControl и пользовательским элементом управления) и привязываете свойства в вашем UserControl к свойствам вашей модели представления.Например (назовем это CustomerView):

<UserControl ...>
    <StackPanel>
        <TextBlock Text="{Binding ID}"/>
        <TextBox Text="{Binding Name}"/>
    </StackPanel>
</UserControl>

Q2.Через DataContext.Например, у вас может быть что-то вроде этого:

<ItemsControl ItemsSource="{Binding Customers}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <local:CustomerView/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

Каждый элемент, сгенерированный ItemsControl, будет иметь связанный элемент данных, установленный как DataContext.Следовательно, каждый CustomerView будет иметь соответствующий Customer в качестве DataContext.

...