Как передать данные между элементами управления и сохранить значения в WPF - PullRequest
0 голосов
/ 28 мая 2010

Я застрял на том, как передавать данные из одного элемента управления в другой. Если у меня есть элемент управления списком, а элемент Contol содержит табличку с данными, которая отображает 5 полей (имя, фамилия, адрес электронной почты, телефон и DOB), все из которых получены из наблюдаемой коллекции. Как я могу позволить пользователю выбрать элемент списка и сохранить значения в новом элементе управления списком?

Это делается с помощью создания новой коллекции или есть более простой способ привязать эти значения к новому элементу управления?

спасибо,

Ответы [ 2 ]

1 голос
/ 28 мая 2010

Если еще не слишком поздно, я настоятельно рекомендую использовать шаблон MVVM . Проблема, с которой вы сталкиваетесь, типична для WPF без достойной модели презентации и не будет последней.

Используя MVVM, вы будете передавать данные между элементами управления / представлениями через ViewModel. В вашем примере у вас будет PersonViewModel с ObservableCollection, содержащей имя, фамилию, адрес электронной почты и DOB. Кроме того, он будет иметь свойство SelectedItem. Это свойство может быть связано с множеством различных элементов управления / представлений без необходимости знать друг друга.

0 голосов
/ 28 мая 2010

Допустим, у вас есть:

<ListBox Name="DemoList" ItemsSource="{Binding ...}">
    <ListBox.ItemTemplate>
        ...
    </ListBox.ItemTemplate>
</ListBox>

И еще один элемент управления, может быть, TextBox:

<TextBox Text="I want to bind this to the Email property" />

Вы можете достичь этого довольно легко, с помощью:

<TextBox Text="{Binding ElementName=DemoList, Path=SelectedItem.Email}" />

Обратите внимание на свойство ElementName привязки. Это позволяет вам связывать относительно другого элемента управления, и в этом случае вы хотите SelectedItem вашего ListBox. SelectedItem будет содержать элемент коллекции в ItemsSource (или NULL, если ничего не выбрано), поэтому вы можете привязать его свойства.

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

...