powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / "Мультисилект" в comboBoxEdit
25 сообщений из 46, страница 1 из 2
"Мультисилект" в comboBoxEdit
    #37694029
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как программно выбрать записи из comboBoxEdit
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
for (int i = 0; i < list_otdel.Items.Count; i++)
           {
            eform_sampling_Result record_list_Inst = list_otdel.Items[i] as eform_sampling_Result;
            if (record_list_Inst != null)
            {
           z_otdelDomainDataSource.Load();
           var record_Inst = ResourceWrapper.CurrentDomainContext.z_otdel_proc_Results.FirstOrDefault(r => r.indx ==record_list_Inst.eform);
           comboBoxOtdel.SelectedItem = record_Inst;
            }
         }


Данный код выбирает только последнюю запись.
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37694092
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor,

Увы, но программно ты сделать этого не сможешь.
Свойство Items (для листбокса это будет SelecedtItems), так вот свойство Items имеет только get в своем свойстве - http://msdn.microsoft.com/ru-ru/library/system.windows.controls.itemscontrol.items.aspx

А значит ты можешь только считывать несколько итемов (если в данный момент в комбобоксе выбраные более одного элемента). А вот программно установить не получится - так как нет модификатора set в свойстве Items
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37694122
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrusChek_Fedor,

Увы, но программно ты сделать этого не сможешь.
Свойство Items (для листбокса это будет SelecedtItems), так вот свойство Items имеет только get в своем свойстве - http://msdn.microsoft.com/ru-ru/library/system.windows.controls.itemscontrol.items.aspx

А значит ты можешь только считывать несколько итемов (если в данный момент в комбобоксе выбраные более одного элемента). А вот программно установить не получится - так как нет модификатора set в свойстве Items

А это свойство имеет тип ItemCollection , который имеет методы Add , Remove и т.д. Низачет про сеттер коллекции. Кстати, как это относится к ComboBox, у которого только 1 элемент выбрать можно?

Chek_Fedor , можете подробнее объяснить?
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37694130
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrus,

и, кстати, SelectedItems ListBox'а относятся к интерфейсу IList (тоже имеет методы Add и т.д.)
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37694228
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

Не надо путать добавление объекта к коллекции - Add, с выбором из существующих обхектов в ComboBox (в коллекции). Это разные вещи.
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37694231
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

Так метод Add тут работает шикарно. Про него я ничего плохого сказать не хочу.
ТЫ почитай внимательно что хочет чел.

Аdd - ДОБАВЛЯЕТ объект в коллецию.

У него стоит другая задача - из объектов существующей коллекции выбрать не один объект (как обычно бывает), а сразу несколько объектов (при условии, что у него при создании ComboBox выставлен соответсвующий параметр)
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37694239
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor,

Знаю как можно обойти это ограничение.
100% прокатит, если ComboBoxItem-ы у тебя созданы "руками" в XAML. У каждого ComboBox tcnm свойство SelectedItem (выставлять можно в XAML). Выставить можно либо true либо false.
Так вот, ты можешь сделать так:

SelectedItem-{Binding Path=Name, Converter=MyComverterToBool}

То есть мысль такая. Создаешь класс. Этот класс связываешь со своей коллецкией (откуда берешь данные, чтобы пихнуть в комбобокс).

Например, твой класс состоит из двух полей. Name и mybool.
Вот ты в своей коллекции выбираешь те эелементы (а значит и имена) которые должны быть отмечены в ComboBox. Если ты хочешь их отметить, то поле mybool делаешь равным true, а если нет - пусть остается false.

Далее твой конвертер будет цеплять этот класс и возвращать mybool. - то есть возвращать либо true либо false.

В итоге в COmboBoxItem в свойстве SelectedItem вымтавится нужное тебе значение.

Я подозреваю что аналогичную работу можно сделать и если в ComboBox данные попадают динамически. Так как никто тебе не мешает Binding сделать в коде (не в XAML).

Я надеюсь ты понял мою идею
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37694326
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть много способов борьбы с этим:
- добавить в шаблон CheckBox c binding'ом к свойству IsSelected;
- спец behavior;
- etc.

Поскольку Федор с mvvm не дружит, то ему подойдет и такой вариант
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37694340
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Здарово))). Все верно, тоже хороший вариант.
А вообще как сказал Сева, вариантов тут можно сделать много - тут уже все зависит от фантазии автора))
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37694360
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrusSeVa,

Здарово))). Все верно, тоже хороший вариант.
А вообще как сказал Сева, вариантов тут можно сделать много - тут уже все зависит от фантазии автора))
ЗЫ Последний вариант не будет работать из code-behind.

Гугли "multi-select listbox wpf". Вариантов много.
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37694364
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

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

Я сам не проверял - я очень ленивый, но подозреваю, что из кода можно с этим бороться. Я как бы подкинул идею - в какую сторону копать. Осталось только включить голову и фантазию автору))
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37694368
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrusSeVa,

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

Я сам не проверял - я очень ленивый, но подозреваю, что из кода можно с этим бороться. Я как бы подкинул идею - в какую сторону копать. Осталось только включить голову и фантазию автору))
Твой вариант с вбиванием гораздо проще делается с помощью шаблона с combobox, один раз задается и все.
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37699969
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дико извиняюсь, а можно поподробнее...
В "комбобокс" гружу записи из таблицы как же программно загрузить записи и присвоить им "true"
Код: sql
1.
2.
3.
4.
5.
<dxe:ComboBoxEdit Name="comboBoxOtdel" DisplayMember="name" ItemsSource="{Binding ElementName=z_otdelDomainDataSource, Path=Data}" PopupClosed="comboBoxOtdel_PopupClosed" Grid.Row="2" Margin="15,5,0,0" Width="240"  HorizontalAlignment="Left" Height="28" VerticalAlignment="Top" Grid.Column="1">
            <dxe:ComboBoxEdit.StyleSettings>
                <dxe:CheckedComboBoxStyleSettings />
            </dxe:ComboBoxEdit.StyleSettings>
        </dxe:ComboBoxEdit>
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37699973
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ComboBoxEdit Devexpress'овский
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37700042
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor,

А можешь код кинуть?
Не хочется руками новый пример вбивать.
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37700071
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Два компонента ListBox и ComboBoxEdit
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 <dx:GroupFrame Header="Отделение" HorizontalAlignment="Left" Width="266" Height="171" VerticalAlignment="Bottom" Grid.Row="1" Grid.RowSpan="2" Grid.Column="1" Margin="0,0,0,6"></dx:GroupFrame>
        <dxe:ComboBoxEdit Name="comboBoxOtdel" DisplayMember="name" ItemsSource="{Binding ElementName=z_otdelDomainDataSource, Path=Data}" 
                          PopupClosed="comboBoxOtdel_PopupClosed" Grid.Row="2" Margin="15,5,0,0" Width="240" 
                          HorizontalAlignment="Left" Height="28" VerticalAlignment="Top" Grid.Column="1" 
            <dxe:ComboBoxEdit.StyleSettings>
                <dxe:CheckedComboBoxStyleSettings />
            </dxe:ComboBoxEdit.StyleSettings>
        </dxe:ComboBoxEdit>
        <ListBox Grid.Row="1" Height="120" HorizontalAlignment="Left" Name="list_otdel" VerticalAlignment="Bottom" Width="240" 
                 ItemsSource="{Binding Mode=OneWay, ElementName=eform_sampling_procDomainDataSource, Path=Data}" 
                 Margin="15,0,0,0"  DisplayMemberPath="name" Grid.Column="1" />


в ListBox грузятся данные каждый раз разные, в зависимости от выбранного параметра "Indx_spec" (меняется в зависимости от выбранной строки в некой Grid)

Код: sql
1.
2.
3.
   LoadOperation<eform_sampling_Result> loadeform_sampling = MainContext.Load(
                    MainContext.Geteform_samplingQuery(Indx_spec));
   list_otdel.ItemsSource = loadeform_sampling.Entities;


В ComboBoxEdit из процедуры (z_otdel_proc_Result)
Код: sql
1.
2.
3.
4.
 <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:z_otdel_proc_Result, CreateList=true}"
                                      Height="0" Name="z_otdelDomainDataSource" QueryName="Getz_otdel_procQuery" 
                                      Width="0"  DomainContext="{StaticResource DomainContext}" Margin="0,0,237,316">
        </riaControls:DomainDataSource>



Или мне сделать какой-нибудь тестовый вариант и взять таблицы из "NORTHWND"?
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37700085
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor,

Лучше код прикрепи - так будет быстрее и надежнее
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37700142
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrus,

и еще сами dll от devex :) а то не запустит никто.
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37700268
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то типа такого. Правда у меня база NORTHWND "крутится" на MSSQL добавил хранимую процедуру "ProcedureName"
для наглядности
Код: sql
1.
2.
3.
4.
5.
SELECT [CategoryID]
      ,[CategoryName]
      ,[Description]
      ,[Picture]
  FROM [NORTHWND].[dbo].[Categories] where CategoryID in (1,2,3)


Только вот я 6 "метров" сюда не вылажу может mail дадите? Или могу только код без DLL хотя он приведен выше.
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37700339
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrus, отправил Вам на mail указанном на форуме
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37700541
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Забил" в xaml значения для "лист и комбо боксов", думаю если подскажите как при нажатии на кнопку выбрать соответствующие значения в "КомбоБоксе" проблема решится. До нажатия
после нажатия
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37700558
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xaml
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<UserControl x:Class="SilverlightApplication9.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400" 
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">

    <Grid x:Name="LayoutRoot" Background="White">
        <dxe:ComboBoxEdit HorizontalAlignment="Left" Margin="40,246,0,0" Name="comboBoxEdit1" VerticalAlignment="Top" 
                          Width="283" >
            <dxe:ComboBoxEdit.StyleSettings>
                <dxe:CheckedComboBoxStyleSettings />
            </dxe:ComboBoxEdit.StyleSettings>
            <dxe:ComboBoxEdit.Items>
                <dxe:ComboBoxEditItem>Item#1</dxe:ComboBoxEditItem>
                <dxe:ComboBoxEditItem>Item#2</dxe:ComboBoxEditItem>
                <dxe:ComboBoxEditItem>Item#3</dxe:ComboBoxEditItem>
                <dxe:ComboBoxEditItem>Item#4</dxe:ComboBoxEditItem>
            </dxe:ComboBoxEdit.Items>
        </dxe:ComboBoxEdit>
        <dxe:ListBoxEdit Height="200" HorizontalAlignment="Left" Margin="41,47,0,0" Name="listBoxEdit1" 
                         VerticalAlignment="Top" Width="283" SelectionMode="Multiple">
            <dxe:ListBoxEdit.Items>
                <dxe:ListBoxEditItem Content="Item#1" />
                <dxe:ListBoxEditItem Content="Item#3" />
            </dxe:ListBoxEdit.Items>
        </dxe:ListBoxEdit>
        <Button Content="Выбрать данные из ListBox" Height="23" HorizontalAlignment="Left" 
                Margin="40,12,0,0" Name="button1" VerticalAlignment="Top" Width="179" Click="button1_Click" />
        <sdk:Label Height="23" HorizontalAlignment="Left" Margin="232,12,0,0" Name="label1" VerticalAlignment="Top" Width="156" />
    </Grid>
</UserControl>
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37700863
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor,

Сори за мою невнимательность.
Еще раз перечитал первое сообщение твое.

Невнимательность моя была в том, что в ListBox есть свойство SelectionMode - именно оно в LISTBOX позволяет выбирать несколько эелментов.
В ComboBox оказывается такого нет.

Поэтому не вижу проблемы вытащить программно один единственный выбранный пункт.
Если хочешь работать так, чтобы была возможность выбирать несколько пунктов - можно посадить ListBox в что-то вроде Expander (не помню всех названий выпадающих эелементов).

Можешь еще раз описать чего ты ождаешь вообще и что именно ты хочешь от ComboBox
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37700914
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor,

Хотел добавить в последнем сообщении, что тебе ничего не мешает в WPF из ListBox сделать ComboBox
...
Рейтинг: 0 / 0
"Мультисилект" в comboBoxEdit
    #37700954
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно выбрать несколько элементов в ComboBox которые загружены в ListBox
...
Рейтинг: 0 / 0
25 сообщений из 46, страница 1 из 2
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / "Мультисилект" в comboBoxEdit
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]