powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / combobox и скрытие для выбора некоторых его элементов?
11 сообщений из 11, страница 1 из 1
combobox и скрытие для выбора некоторых его элементов?
    #36808062
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
народ, не могу победить ограничение выбора элементов комбобокса.
пробую самое элементарное visible свойство через конвертер меняю. так у меня в комбобоксе они не пропадают, а становятся высотой в 5 пикселей и их можно выбрать :(
и так с любым свойством, хоть ishittestvisible , там тоже можно выбрать , если мышкой щелкнуть под край границы элемента.

хотелось бы просто ограничить выбор элементов в зависимости от условия.
никто не знает как?
...
Рейтинг: 0 / 0
combobox и скрытие для выбора некоторых его элементов?
    #36808453
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок. сделаю пост более интерактивным.
приложил файлик.
в нем убрана видимость элементов комбобокса. но при открытии его, видны контейнеры от элементов и их можно щелкать и все как быработает.

вот хотелось,чтобы исчезли элементы, а не так вот криво трансформировались.
...
Рейтинг: 0 / 0
combobox и скрытие для выбора некоторых его элементов?
    #36808620
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, не совсем ясен вопрос. Если Вы хотите, чтобы в комбобоксе отображались не все элементы некоторого списка, а только их подмножество в зависимости от некоторого условия, то Вам нужно сделать вот так:
[SRC xml]
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Width="200" SizeToContent="Height">
<StackPanel>
<TextBox Text="{Binding Path=Start, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Margin="0,0,0,10"/>
<ComboBox ItemsSource="{Binding Path=Items, UpdateSourceTrigger=PropertyChanged}" MinWidth="100" />
</StackPanel>
</Window>
[/SRC]
...
Рейтинг: 0 / 0
combobox и скрытие для выбора некоторых его элементов?
    #36808627
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, случайно нажал кнопку "Опубликовать".
----

Честно говоря, не совсем ясен вопрос. Если Вы хотите, чтобы в комбобоксе отображались не все элементы некоторого списка, а только их подмножество в зависимости от некоторого условия, то Вам нужно сделать вот так:

MainWindow.xaml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Width="200" SizeToContent="Height">
    <StackPanel>
        <TextBox Text="{Binding Path=Start, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Margin="0,0,0,10"/>
        <ComboBox ItemsSource="{Binding Path=Items, UpdateSourceTrigger=PropertyChanged}" MinWidth="100" />
    </StackPanel>
</Window>

MainWindow.xaml.cs
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            this.DataContext = new MyData();
        }
    }

MyData.cs
Код: plaintext
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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
    // модель данных
    public class MyData: INotifyPropertyChanged
    {
        #region INotifyPropertyChanged Members

        // Raised when a property on this object has a new value.
        public event PropertyChangedEventHandler PropertyChanged;

        // Raises this object's PropertyChanged event.
        protected virtual void OnPropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler handler = this.PropertyChanged;
            if (handler != null)
            {
                var e = new PropertyChangedEventArgs(propertyName);
                handler(this, e);
            }
        }

        #endregion // INotifyPropertyChanged Members

        // полный (исходный) массив строк
        private string[] _names = new string[] {
                "Саша", "Петя", "Вася", "Ваня", "Маша", "Сеня", "Алена", "Андрей", "Алеша", "Паша", "Кеня", "Коля"
            };

        // массив строк - источник данных для комбобокса
        private string[] _items;
        public string[] Items
        {
            get { return _items; }
            private set 
            {
                _items = value;
                OnPropertyChanged("Items");
            }
        }

        // на основании этого свойства меняется источник данных для комбобокса
        private string _start;
        public string Start
        {
            get { return _start; }
            set 
            { 
                _start = value;
                OnPropertyChanged("Start");

                // вот здесь изменяем источник данных для комбобокса
                if(string.IsNullOrEmpty(Start))
                    Items = _names;
                else
                    Items = (from name in _names where name.StartsWith(_start) select name).ToArray(); 
            }
        }    

        // ctor
        public MyData()
        {
            // инициализируем свойства
            Start = "";
        }
    }
...
Рейтинг: 0 / 0
combobox и скрытие для выбора некоторых его элементов?
    #36808906
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnSparrow,

у меня этот комбобокс находится в гриде.
то есть там комбобоксом столько же , сколько и строк.
и каждый комбобокс с базовым одинаковым источником даных
и у каждого комбобокса он модифицирован
и вот я привел пример, модификация через visiblity оставляет, какието пустые прямоугольники :(
...
Рейтинг: 0 / 0
combobox и скрытие для выбора некоторых его элементов?
    #36809377
Фотография aleks-sam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я че то подобное делал через ListCollectionView используя его предикат Filter для ListBox'а. Посмотри, может и для комбика подойдет.
...
Рейтинг: 0 / 0
combobox и скрытие для выбора некоторых его элементов?
    #36811791
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK, так или иначе, но фильтровать стоит источник данных комбобокса, а не скрывать какие-то элементы в при выводе в нем.
...
Рейтинг: 0 / 0
combobox и скрытие для выбора некоторых его элементов?
    #36811929
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK,

Ну надо фильтровать источник данных - так правильно.
Хотя можно попробывать выставить в свойстве Visiblity значение Collapsed
...
Рейтинг: 0 / 0
combobox и скрытие для выбора некоторых его элементов?
    #36812409
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJack,

автормодификация через visiblity оставляет, какието пустые прямоугольники
видишь) я писал уже об этом. ставишь в collapsed и артефакаты получаю :(
...
Рейтинг: 0 / 0
combobox и скрытие для выбора некоторых его элементов?
    #36812508
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
народ я забыл указать, что это Silverlight 3.
...
Рейтинг: 0 / 0
combobox и скрытие для выбора некоторых его элементов?
    #36812591
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ха! сделал.

Код: plaintext
1.
2.
3.
4.
5.
6.
 
Private _statsView As ICollectionView
  Dim i As New System.Windows.Data.CollectionViewSource

   i.Source = StatusList
   _statsView = i.View
   _statsView.Filter = New Predicate(Of Object)(AddressOf FilterLB)

Код: plaintext
<ComboBox x:Name="cbStats" ItemsSource="{Binding StatsView}" />

для будущих вопросов.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / combobox и скрытие для выбора некоторых его элементов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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