2010-05-27 4 views
1

Я играл с элементом управления WPF GridView (DesktopUI not Silverlight), и мне нужно иметь возможность выбирать определенную строку и иметь только данные для этой строки возвращается для просмотра в новом элементе управления, таком как окно списка.Как выбрать одну строку данных из telerik WPF GridView control

Кроме того, как только данные из строки выбраны, возможность выбора или добавления дополнительных данных в мой список должна быть отключена. Вариант использования здесь заключается в том, что пользователь может выбрать только одну строку/запись для экспорта или публикации.

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

Кто-нибудь имел опыт с этими элементами управления и знать, может ли это быть выполнено в сетке WPF gridView. Мне не очень повезло с их документацией, и я попытался использовать некоторые функции наследования, такие как свойство GridViewSelectColumn (которое генерирует флажок в столбце, но мне не приходилось прибегать к вызовам команд при выборе/проверке флажка). Вместо флажка я должен смотреть, чтобы использовать кнопку и добавить, что в качестве отдельного столбца, который пользователь может нажать, например, как:

Если кто-то может предоставить образец кода, как вызвать выделение одного строка данных, а также как отключить выделение дополнительных строк после выбора одной строки. Я был бы признателен. Для отключения я предполагаю, что свойство CanUserSelect нужно установить в false, как только элемент был выбран, но мне еще не удалось вызвать что-либо с помощью GridViewSelectColumn.

Будут оценены любые образцы или контрольные точки.

Спасибо

+0

Так что, работая над еще одним элементом управления, я добавил кнопку в окно, которое при нажатии теперь фиксирует все соответствующие записи для указанной строки. Для этого я использовал: this.radGridView1.SelectedItem Теперь мой вопрос заключается в том, чтобы показать эти записи в новом элементе управления, нужно ли это переместить в новую коллекцию, а затем привязать эту коллекцию к элементу управления или я могу толкать их прямо через. Я могу ошибаться, но кажется, что это слишком сложно, создавая новую коллекцию, но я все еще новичок в этом. Заранее благодарен – rlcrews

ответ

0

Я понимаю, что это старый пост. Но я хотел обратиться к этому в хопке, это поможет другим. Для этого проекта я хотел иметь возможность выбирать записи для строки spicecific в виде сетки. Telerik GridView возвратил 5 столбцов, но коллекция (возвращенная из службы WCF) фактически содержала до 30 столбцов.

Я не собираюсь обращаться к привязке данных здесь только к настройке выбора. Также этот сампел не следует шаблону (например, MVVM), поэтому для быстрого анализа код был помещен в код xaml-кода.

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

this.myGridView.Loaded += (o, e) => 
     { 
      this.myGridView.SelectedItems.CollectionChanged += new NotifyCollectionChangedEventHandler(SelectedItem_CollectionChanged); 
     }; 

И для SelectedItem_Collection Changed событий

 void Item_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) 
    { 
     if (e.Action == NotifyCollectionChangedAction.Add) 
     { 
      var index = e.NewItems[0] as myWCFService.Index; 
      currentItem = index.Item; 
     } 
    } 

В основном то, что здесь происходит, когда выбор записи детектируется элементы из выбранной строки (включая все пункты не показаны в сетке) Это делается seting index = к e.NewItems [0] из моего веб-сервиса, который затем добавляется в новую коллекцию (currentItem) в памяти.

Примечание: CurrentItem был объявлен в главном классе, как:

public myWCFService.Item currentItem; 

После того, как это было сделано у меня была возможность передавать данные из выбранной строки (хранится в коллекции CurrentItem) в другие коллекции/контроля

 Смежные вопросы

  • Нет связанных вопросов^_^