Получение текущего объекта с BindingContext не проблема, но что мне делать, когда я выбрал много строк в datagridview? Как выполнять итерацию по каждому объекту? thanksBindingContext и многопользовательский datagridview
ответ
Это было нелегко или весело. По умолчанию привязка нескольких выбранных строк в datagrid не поддерживается. Я использую MultiSelectBehavior от функционального Fun:
http://blog.functionalfun.net/2009/02/how-to-databind-to-selecteditems.html
Это мои заметки, чтобы заставить его работать:
Чтобы получить эту работу, я сделал это:
Добавить это определение пространства имен к вид: XMLNS: ФФ = "CLR-пространств имен: FunctionalFun.UI.Behaviours; сборочные = MultiSelectBehavior"
в DataGrid, добавьте последние две строки, показанные здесь (ФФ: ... и SelectionMode ... .): ФФ: MultiSelectorBehaviours.SynchronizedSelectedItems = "{Binding} SelectedTasks" SelectionMode = "Расширенная"
Примечание: В модели представления, SelectedTasks не может быть нулевым, даже тогда, когда первая объявлена.
No: private ObservableCollection selectedTasks;
Да: private ObservableCollection selectedTasks = new ObservableCollection();
И это некоторый фактический код, который работает:
xmlns:ff="clr-namespace:FunctionalFun.UI.Behaviours;assembly=MultiSelectBehavior"
<DataGrid Grid.Row="1" AutoGenerateColumns="False" IsReadOnly="True" HeadersVisibility="Column"
ItemsSource="{Binding SelectedApplicationServer.ApplicationsWithOverrideGroup}"
ff:MultiSelectorBehaviours.SynchronizedSelectedItems="{Binding SelectedApplicationsWithOverrideGroup}"
SelectionMode="Extended">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Application.Name}" Header="Name" Width="150" />
<DataGridTextColumn Binding="{Binding Path=Application.Version}" Header="Version" Width="100"/>
<DataGridTextColumn Binding="{Binding Path=CustomVariableGroup.Name}" Header="Override Group" Width="*"/>
</DataGrid.Columns>
</DataGrid>
Надеется, что это помогает.
Edit: Я просто добавил функциональный код Fun в качестве проекта в моем решении, и тогда я ссылаться его в моей точки зрения проекта:
У меня возникла проблема с использованием вышеуказанного кода. Я добавлял новые элементы в объект SynchronizedSelectedItems. Чтобы устранить проблему, я прекратил создавать новые элементы и начал добавлять элементы из объекта ItemSource.Поэтому я зациклился на ItemSource, чтобы найти правильный элемент для добавления в SyncronizedSelectedItems вместо того, чтобы сказать, что я знаю, что ItemSource содержит то, что равно XX, поэтому создайте новый элемент из XX и добавьте его в SyncronizedSelectedItems. Во всяком случае, спасибо за код, люблю его, отлично работает. –
Предположим, что ваш DataGridView привязан к BindingSource
, используя DataMember
свойство так:
myDataGridView.DataSource = someBindingSource;
myDataGridView.DataMember = "SomeCollectionProperty";
Тогда вы можете получить список связанных элементов позади DataGridView
:
IList dataBoundItems =
((CurrencyManager)grid.BindingContext[grid.DataSource, grid.DataMember]).List;
Вы также можете бросить этот список к IEnumerable<T>
с помощью:
var myItems = dataBoundItems.OfType<myClass>();
- 1. Многопользовательский многопользовательский режим или многопользовательский многопользовательский интерфейс?
- 2. .Net bindingcontext метод обновления
- 3. Nativescript: bindingContext to ListView
- 4. Многопользовательский старт для нокаута
- 5. Определение и многопользовательский охват
- 6. Многопользовательский многопользовательский поиск в Elasticsearch
- 7. проблема с BindingContext в C#
- 8. Многопользовательский поиск - обновить и сохранить
- 9. NAT, P2P и многопользовательский режим
- 10. Многопользовательский многопользовательский кролик MQ с одной очередью
- 11. Многопользовательский загрузчик
- 12. Set view element BindingContext - mvvm cross
- 13. Xamarin.Forms: Как установить BindingContext внутри XAML?
- 14. BindingContext имеет значение null при создании MvxAdapter
- 15. Нокаут Шаблон: Own BindingContext, одни и те же родители
- 16. Кнопка привязки формы Xamarin к родительскому BindingContext
- 17. Как получить BindingContext ContentPage из ContentView?
- 18. Связывание TextColor метки внутри StackLayout с BindingContext
- 19. Многопользовательский и нетерпеливый запрос на загрузку
- 20. Многопользовательский селектор и запросы на игру
- 21. Многопользовательский, Multi-Touch и одновременный ввод
- 22. Spring Framework, функция переключения и многопользовательский проект
- 23. Elasticsearch Многопользовательский запрос и сопоставление одного поля
- 24. Многопользовательский плагин Single DB и столчик tenant_id
- 25. Prestashop многопользовательский и многоязычный URL rewrite
- 26. Многополярный и многопользовательский поиск по elasticsearch
- 27. многопользовательский логин, не проверяющий пароль и сеанс
- 28. Android 5 многопользовательский на планшетах и разрешениях
- 29. php socket servers, actionscript 3 и многопользовательский
- 30. Один серверный и многопользовательский чат в UDP
ли мой ответ вам помочь? –
Это наверняка поможет пользователям WPF :) Вопрос звучит скорее из-за winforms. – Larry