Как я могу программно выбрать элемент списка из модели представления? - PullRequest
1 голос
/ 30 марта 2012

У меня есть приложение MVVM с MainWindowViewModel, подключенным к представлению MainWindow.
В представлении MainWindow у меня есть ComboBox, содержащее биржевые символы.

У меня есть другоеviewmodel и представление с именем AllStockQuoteViewModel, подключенное к AllStockQuoteView, которое содержит список акций и их цены.

Я хочу иметь возможность выбрать элемент из ComboBox и получить элемент в AllStockQuoteView выделено и выделено.На моем MainWindowViewModel я сохранил ссылку на AllStockQuoteViewModel и использую ее для вызова метода, чтобы найти символ биржевого тикера в ObservableCollection, привязанном к AllStockQuoteView, но не нашел способа программно выбратьэлемент в AllStockQuoteView.

У меня есть свойство SelectedQuote в AllStockQuoteViewModel, привязанное к просмотру списка в AllStockQuoteView, и я могу выбрать один из элементов, и мое свойство SelectedQuoteустановить хорошо.Если я установлю это программно в моем методе SelectQuote, он не будет выглядеть так, как будто элемент выбран в представлении, хотя элемент передается обратно в MainWindowViewModel, и я могу использовать его для заполнения текстовых блоков в MainWindow view.

Я бы хотел показать элемент на AllStockQuoteView как выбранный с помощью выделения, как если бы пользователь его выбрал.

Как это можно сделать?

Ответы [ 2 ]

3 голосов
/ 30 марта 2012

Его очень легко реализовать.

Вам нужно две вещи в вашей модели представления. Список ваших объектов и свойство выбранного элемента.Комбинированное управление и привязка к обоим свойствам.

<ListView ItemsSource="{Binding CustomObjects}"
          SelectedItem="{Binding SelectedCustomObject}">

Тогда все, что вам нужно сделать, это установить свойства viewmodel, и представление обновится.

0 голосов
/ 30 марта 2012

Сначала вы должны подумать о своей модели и всем подходе MVVM. Хорошей отправной точкой будет http://blogs.msdn.com/b/kashiffl/archive/2010/11/14/mvvm-technical-description.aspx.

После того, как вы сможете реализовать свои функциональные возможности различными способами, можно было бы реализовать что-то вроде Шаблон наблюдателя или вы пытаетесь использовать такие методы, как Уведомление об измененных свойствах-событиях .

Надеюсь, я смог помочь,

Привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...