Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/72: Рейтинг темы: голосов - 72, средняя оценка - 4.89
1 / 1 / 1
Регистрация: 27.05.2015
Сообщений: 86
WPF

Кастомный контрол ListBox с CheckBox в качестве элементов

21.11.2019, 14:36. Показов 15017. Ответов 55

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!


Имею вот такой объект на формочке (листбокс с чекбоксами вместо элементов).

XML
1
2
3
4
5
6
7
8
9
10
11
    <Grid>
       <ListBox ItemsSource="{Binding workersHS_FIO}" >
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel>
                                <CheckBox Content="{Binding ''}"/>
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
         </ListBox>
    </Grid>
При запуске программы всё отображается, как надо: листбокс, и все элементы его коллекции отображаются в виде активных чекбоксов. (workersHS_FIO -это ObservableCollection<string>)
Вопрос 1: Как можно получить список отмеченных чекбоксов?
Вопрос 2: Как можно оформить это в виде отдельного UserControl, чтобы можно было добавить его на форму и привязываться к допустим отмеченным элементам?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.11.2019, 14:36
Ответы с готовыми решениями:

Отсутствует кастомный контрол в панели Toolbox
используется VS2012 все просто - добавляю собственный UserControl (WPF), пускай он будет пустой. проект компилируется - без ошибок....

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

Кастомный контрол на winforms
Как сделать такой контрол, чтобы в выпадающем списке листобокса были еще чек боксы? И чтобы потом можно было выборку делать по итемам...

55
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16151 / 11272 / 2890
Регистрация: 21.04.2018
Сообщений: 33,146
Записей в блоге: 2
27.11.2019, 16:15
Студворк — интернет-сервис помощи студентам
tagota, я сейчас без компа до НГ.
И мне трудно со смарта разбирать такие нюансы.
Для этого всё-таки нужен дебагер.

Если вам очень надо, то могу вам писать, что надо делать, какой код куда вставлять.
Вы мне будете сообщать результаты.
В итоге разберёмся, но на это уйдеёт очень много времени.
Мне не трудно, но насколько оно вам надо?
0
1 / 1 / 1
Регистрация: 27.05.2015
Сообщений: 86
29.11.2019, 10:37  [ТС]
Элд Хасп, я понял.

Конкретно в данном случае задача конечно решается экспандером, как Вы и сказали, но пока я разбирался, у меня таки появился спортивный интерес научиться делать свои контролы, под конкретные цели. В интернете вроде есть темы по разработке простых контролов без множества привязок и прочего, но вот я попытался копнуть чуть глубже и таки упёрся. Чем не нравится XAML, так это тем, что если что-то не работает, то он тебе не скажет почему..)

Меня время не сильно жмёт, так что я готов по Вашей схеме писать код. А надобность, как я и сказал - научиться писать своё, потому что ситуации разные могут возникать.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16151 / 11272 / 2890
Регистрация: 21.04.2018
Сообщений: 33,146
Записей в блоге: 2
29.11.2019, 11:33
tagota, UC делаются тогда когда надо добавить новые свойства, новое поведение, но не тогда когда надо изменить представление.
Представление задаётся в XAML.
Будете иначе - создадите гору костылей.

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

Посмотрите пример реализации контрола "Полигональная кнопка" в теме Кастомная кнопка в UserControl или UserControl со свойствами кнопки

Там есть новые свойства для цветов кнопки в различных состояниях, для приёма делегата метода рисования полигона. Есть новое поведение - форма кнопки задаётся внешним делегатом.
Но вся визуальная часть задаётся в XAML в шаблоне.
Но даже это не совсем правильно, поскольку шаблон задаётся внутри UC. Он должен быть в отдельном ресурсе.

Я не пишу вам не создавайте UC. Пишу - не злоупотребляйте.
Всему своё место и время.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16151 / 11272 / 2890
Регистрация: 21.04.2018
Сообщений: 33,146
Записей в блоге: 2
29.11.2019, 11:47
tagota, что касается нахождения ошибки.
То с целью обучения давайте попробуем.

Для начала надо определить правильно создаются свойства и привязки.
Для этот создайте новое окно для отладки кода.
В нём создайте экземпляр вашего UC.
Задайте привязки к его свойствам.
Также в окно добавьте несколько TextBox которые привяжите к этим же свойствам.
В результате вы сможете в окне увидеть состояние свойств UC.
Привязки в TextBlock можно изменять в XAML прямо во время отладки окна.
XAML во время отладки интерпретируется.

Таким образом вы сможете как проверить тип значений сложных свойств.
Так сможете и задать привязке вывод значений вложенных свойств или индекс элемента.

Убедитесь что все добавленные свойства работаю правильно.
После этого можно будет перейти к отладке представления.
0
1 / 1 / 1
Регистрация: 27.05.2015
Сообщений: 86
02.12.2019, 14:11  [ТС]
Элд Хасп,
Итак, вот создал простенький контрол из пары текстбоксов.

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<UserControl x:Class="StandManager.Views.UserControls.MyUserControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:StandManager.Views.UserControls"
             mc:Ignorable="d" 
             d:DesignHeight="100" d:DesignWidth="200"
             
             Name="MyUC">
 
        <Grid>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <TextBox x:Name="tb1" Grid.Row="0"
                 Text="{Binding FirstStringProperty, ElementName=MyUC}"></TextBox>
        <ComboBox x:Name="cb2" Grid.Row="1"
                 ItemsSource="{Binding CollectionProperty, ElementName=MyUC}"></ComboBox>
    </Grid>
</UserControl>
и в его .cs я сделал 2 DependencyProperty
C#
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
        public string FirstStringProperty
        {
            get
            {
                return (string)GetValue(FirstStringPropertyProperty);
            }
            set
            {
                SetValue(FirstStringPropertyProperty, value);
            }
        }
        public static readonly DependencyProperty FirstStringPropertyProperty =
            DependencyProperty.Register("FirstStringProperty", typeof(string), typeof(MyUserControl));
 
 
 
 
        public ObservableCollection<string> CollectionProperty
        {
            get
            {
                return (ObservableCollection<string>)GetValue(MyCollectionProperty);
            }
            set
            {
                SetValue(MyCollectionProperty, value);
            }
        }
        public static readonly DependencyProperty MyCollectionProperty =
            DependencyProperty.Register("CollectionProperty", typeof(ObservableCollection<string>), typeof(MyUserControl));
НА данном этапе всё работает и привязка к этим двум свойствам извне работает корректно.
(в текстбоксе отображается нужный текст; В комбобоксе нужные компоненты)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16151 / 11272 / 2890
Регистрация: 21.04.2018
Сообщений: 33,146
Записей в блоге: 2
02.12.2019, 16:04
tagota, ОК!
Продолжайте дальше.
Поймайте момент когда работа станет не корректной.
0
1 / 1 / 1
Регистрация: 27.05.2015
Сообщений: 86
02.12.2019, 16:58  [ТС]
Элд Хасп, Таки заткнулся на моменте, когда пытался засунуть в другой комбобокс список, содержащий объекты моего класса (содержат string имя и bool флаг, выбран объект или нет")
Сам класс, который мы выше уже делали
C#
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
        
public class FIOWorkers : INotifyPropertyChanged
        {
 
            public event PropertyChangedEventHandler PropertyChanged;
            /// <summary>
            /// Метод для генерации события изменения значения свойства
            /// </summary>
            protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
            {
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
 
 
            public FIOWorkers(string fio)
            {
                Fio = fio;
            }
 
            /// <summary>
            /// Отмечен ли галочкой сотрудник
            /// </summary>
            public bool IsSelected
            {
                get => _isSelected;
                set
                {
                    _isSelected = value;
                    OnPropertyChanged();
                }
            }
            private bool _isSelected;
 
            /// <summary>
            /// ФИО сотрудника
            /// </summary>
            public string Fio
            {
                get;
            }
        }
P.S. тут INPC нужен кстати или он лишний?
P.S.S. в свойстве Fio установлен только геттер. А set не нужен?


То есть я создал ещё одно свойство
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        
public ObservableCollection<FIOWorkers> CollectionClassProperty
        {
            get
            {
                return (ObservableCollection<FIOWorkers>)GetValue(CollectionClassPropertyProperty);
            }
            set
            {
                SetValue(CollectionClassPropertyProperty, value);
            }
        }
        public static readonly DependencyProperty CollectionClassPropertyProperty =
            DependencyProperty.Register("CollectionClassProperty", typeof(ObservableCollection<FIOWorkers>), typeof(MyUserControl));
и в разметку контрола добавил ещё один комбобокс для этого свойства
XML
1
<ComboBox ItemsSource="{Binding CollectionClassProperty, ElementName=MyUC}" Background="#FFFFE9C3"/>
ну и как результат у меня в созданном комбобоксе с привязкой к свойству CollectionClassProperty ничего не отображается. Подозреваю, что нужно комбобокс биндить к списку с Fio всех элементов, но как это сделать, так и не догадался.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16151 / 11272 / 2890
Регистрация: 21.04.2018
Сообщений: 33,146
Записей в блоге: 2
02.12.2019, 18:23
tagota, хоть мне очень не нравится такая реализация FIOWorkers, но будем разбираться с ней.
Свойство FIO только для чтения, поэтому у свойства только геттер.
Значение такому свойству можно задать только в конструкторе типа.

INPC нужен только если свойство IsSelected может меняться в нескольких местах приложения.
Лучше перестраховаться и сделать его поддержку, чем потом, в случае чего, искать причину багов.

Добавлено через 13 минут
tagota, в ComboBox же надо задать шаблон элемента.
Но даже без него должна выводиться коллекция, но все элементы в ней будут "FIOWorkers" - имя класса.
Не выводится?

Значит коллекция пустая. Или привязка неправильная.

Для проверки задайте в UC TextBlock с привязкой к CollectionClassProperty.Count
И посмотрите какое значение будет в нём.
Если 0, значит неправильно заполнена коллекция.
Если пустой - значит коллекция свойство null и по привязке ничего не пришло.
Причину надо искать в заданной привязке.

Добавлено через 1 минуту
tagota, ещё совет.
Привязки создавайте в конструкторе привязок.
Это поможет избежать случайных ошибок.
0
1 / 1 / 1
Регистрация: 27.05.2015
Сообщений: 86
03.12.2019, 11:52  [ТС]
Элд Хасп, сделал, как Вы сказали, добавил
XML
1
<TextBlock Grid.Row="3" Text="{Binding CollectionClassProperty.Count, ElementName=MyUC}"/>
однако он пустой.
Сделал такую же проверку в основном окне приложения, с биндингом уже непосредственно к FIOWorkers во вьюмодели, с которой работаю, там он работает и показывает корректное количество элементов.

Значит проблема в привязке, а куда копать, чтобы её выяснить?

ещё заметил такой момент, что в XAML есть подчёркивание, типа ошибки и к ней сообщение "тип "ObservableCollection" не является коллекцией."
Миниатюры
Кастомный контрол ListBox с CheckBox в качестве элементов  
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16151 / 11272 / 2890
Регистрация: 21.04.2018
Сообщений: 33,146
Записей в блоге: 2
03.12.2019, 14:17
tagota, давайте сначала проясним реализацию вашего UC.

В нём есть три DP свойства: .
Все они реализованы по отдельности и ни как не связаны друг с другом.
Для чего какое из них? Какой функционал они реализуют?


В XAML, как я понял, три элемента:
TextBlock привязанный к FirstStringProperty.
ComboBox привязанный к CollectionProperty
ComboBox привязанный к CollectionClassProperty

Какие значения вы привязываете в окне к свойствам FirstStringProperty, CollectionProperty и CollectionClassProperty?
Что из них отображается, а что нет в UC?

Добавлено через 5 минут
Цитата Сообщение от tagota
ещё заметил такой момент, что в XAML есть подчёркивание, типа ошибки и к ней сообщение "тип "ObservableCollection" не является коллекцией."
Это потому, что значение свойства равно null. И оно не является коллекцией.
После получения коллекции по привязке это предупреждение исчезнет.
Чтобы не было таких ложных предупреждений, ошибок, исключений надо задавать контекст данных времени разработки.
Контекст данных времени разработки значительно упрощает и ускоряет конструирование окон, страниц, UC.
Уменьшает вероятность различных багов.
0
1 / 1 / 1
Регистрация: 27.05.2015
Сообщений: 86
03.12.2019, 14:35  [ТС]
Элд Хасп,
Этот MyUserControl я сделал тестовым. Набор элементов по сути выбирался для отладки.
В первый текстбокс выводится обычный текст
В первый комбобокс обычная коллекция с string элементами
Во втором комбобоксе я уже попытался отобразить коллекцию с элементами классами, чего у меня и не вышло. То есть я пошагово хотел от простого к сложному разобраться во первых в правильности создания мною DP, и во вторых в чём ошибка была, когда делал привязку к коллекции с объектами класса.

В основном окне все привязки работают, кроме той, что с коллекцией с объектами FIOWorkers. (ещё раз напомню, что если делать этот юзерконтрол не как отдельный контрол, а в той же xaml страничке, но просто кодом, который показал мсье
sttrox, то всё работает, отображается, выбирается)


В конце концов я хотел прийти к тому контролу, который хотел сделать изначально: комбобокс с чекбоксами и иметь у этого контрола два свойства: список всех элементов и список только выбранных элементов.
что-то вроде такого:
XML
1
2
3
4
5
6
7
8
9
10
11
12
        
         <ComboBox Grid.Row ="2" x:Name="ccb" 
                  ItemsSource="{Binding CollectionClassProperty, ElementName=MyUC}"  //вот тут список всех элементов коллекции ObservableCollection<FIOWorkers>
                  SelectedValue="{Binding CollectionClassProperty[0],ElementName=MyUC}">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                        <CheckBox IsChecked="{Binding Path=IsSelected}" Content="{Binding Path=Fio}" /> //тут чекбоксы элементов FIOWorkers, которые можно выбирать 
                    </StackPanel>
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16151 / 11272 / 2890
Регистрация: 21.04.2018
Сообщений: 33,146
Записей в блоге: 2
03.12.2019, 14:43
tagota, ок.
На данный момент покажите как вы создаёте и привязываете коллекцию с FIOWorkers.
И что у вас выводит TextBlock c привязкой к CollectionClassProperty.Count
0
1 / 1 / 1
Регистрация: 27.05.2015
Сообщений: 86
03.12.2019, 15:19  [ТС]
Элд Хасп, итак:

В самой программе во вью модели уже имеется string список всех фамилий workersHS_FIO, и исходя из него заполняется коллекция _workersHS_FIO из FIOWorkers объектов
C#
1
2
3
4
            foreach (var w in workersHS_FIO)
            {
                _workersHS_FIO.Add(new FIOWorkers(w));
            }
(Эта процедура проводится сразу же, как страница программы открывается)

В XAML странички привязка параметров в контроле выглядит так:
XML
1
2
3
4
5
6
            <UC:MyUserControl x:Name="MyUC" 
                                  FirstStringProperty="{Binding _workersHS_FIO.Count}" 
                                  CollectionProperty="{Binding workersHS_FIO}"
                                  CollectionClassProperty="{Binding _workersHS_FIO}"
                                  HorizontalAlignment="Right" VerticalAlignment="Top" Width="200" Height="100">
            </UC:MyUserControl>
куда в текстбокс нашего тестового контрола для удобства я вывел количество элементов _workersHS_FIO.Count коллекции
в первый комбобокс список строковых фамилий workersHS_FIO
а второй комбобокс это уже то, что у нас не работает (комбобокс с чекбоксами с привязкой к _workersHS_FIO)

ну и чтобы FIOWorkers был перед глазами, на всякий случай его продублирую сюда

C#
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
public class FIOWorkers : INotifyPropertyChanged
    {
 
        public event PropertyChangedEventHandler PropertyChanged;
        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
 
        public bool IsSelected
        {
            get => _isSelected;
            set
            {
                _isSelected = value;
                OnPropertyChanged();
            }
        }
        private bool _isSelected;
 
        public FIOWorkers(string fio)
        {
            Fio = fio;
        }
        public string Fio { get; }
        
    }
Миниатюры
Кастомный контрол ListBox с CheckBox в качестве элементов  
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16151 / 11272 / 2890
Регистрация: 21.04.2018
Сообщений: 33,146
Записей в блоге: 2
03.12.2019, 16:32
tagota, из скрина видно что коллекция в VM заполнена.
Теперь надо проверить привязки к UC.
Добавьте в UC два TextBlock с привязкой к CollectionClassProperty и к CollectionClassProperty.Count.
И скиньте что они вывели.
0
1 / 1 / 1
Регистрация: 27.05.2015
Сообщений: 86
03.12.2019, 16:39  [ТС]
Элд Хасп, Добавил. ничего не вывели. На их месте просто пустота.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16151 / 11272 / 2890
Регистрация: 21.04.2018
Сообщений: 33,146
Записей в блоге: 2
03.12.2019, 17:31
tagota, значит по привязке ничего не приходит.
Проверьте синтаксис ещё раз.
Может где символ лишний или не в той раскладке.

Добавлено через 3 минуты
tagota, когда редактируете XAML UC, в конструкторе привязок видны добавленные свойства?
Привязки создаёте через конструктор?

Добавлено через 2 минуты
tagota, и ещё рекомендация.
У обычных свойств не должно быть окончания Property.
Это окончание по соглашению зарезервировано за DP свойствами.
Не думаю что дело в этом.
Но измените названия - они сбивают с толку.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16151 / 11272 / 2890
Регистрация: 21.04.2018
Сообщений: 33,146
Записей в блоге: 2
04.12.2019, 08:17
tagota, для проверки где "ломается" привязка в TextBlock который в окне задайте привязку не к свойству VM, а к свойству CollectionClassProperty вашего UC.
Если TextBlock отобразит данные, то значит "снаружи" в окне всё правильно - ошибка где-то "внутри" контрола.
0
1 / 1 / 1
Регистрация: 27.05.2015
Сообщений: 86
04.12.2019, 13:09  [ТС]
Элд Хасп, Через конструктор привязок переделал все связи. По другому записались лишь привязки в чекбоксе, остальное по сути записывается точно так же, как и до этого я сделал руками.

то, что закомментировано - это как было. А теперь то, как оно выглядит после конструктора.
XML
1
2
3
4
5
<StackPanel>
          <!--<CheckBox Content="{Binding Path=Fio}" IsChecked="{Binding Path=IsSelected}"  />-->
          <CheckBox Content="{Binding CollectionClassProperty/Fio, ElementName=MyUC, Mode=OneWay}" 
                            IsChecked="{Binding CollectionClassProperty/IsSelected, ElementName=MyUC}" />
</StackPanel>
Всё ещё не работает...


Привязал текстбокс в программе к свойству CollectionClassProperty - пусто.

Цитата Сообщение от Элд Хасп Посмотреть сообщение
У обычных им свойств не должно быть другие Property.
Вот тут немного не понял, какие имена у меня "не по ГОСТу"?

Немного поигрался с привязками внутри UC и понял, что проблема крутится именно вокруг CollectionClassProperty, потому что если привязать текстбоксы к обычной коллекции CollectionProperty, то отображается и её тип и количество элементов.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16151 / 11272 / 2890
Регистрация: 21.04.2018
Сообщений: 33,146
Записей в блоге: 2
04.12.2019, 13:57
Цитата Сообщение от tagota
Вот тут немного не понял...

Пишу со смарта - интеллектуальный ввод чудачит.
А перепроверяю написанное не всегда.
Пост сейчас исправлю.

Добавлено через 3 минуты
Привязал текстбокс в программе к свойству CollectionClassProperty - пусто.
А это говорит о том, что проблема не "внутри" контрола, а на уровне окна - при передачи значений свойству CollectionClassProperty.
Ищете в этом направлении.

Добавлено через 16 минут
Цитата Сообщение от tagota
какие имена у меня "не по ГОСТу"?
Привязки - это экземпляр класса Binding.
И связь между экземпляром и DP свойством устанавливается методом SetBinding класса DO.
Кроме DP свойства мы создаём ещё для него оболочку из обычного свойства.
Но в коде мы не сможем присвоить через эту оболочку привязку. Только просто значение.

Чтобы не усложнять XAML для WPF принято соглашение.
В XAML всегда обращаются по имени обычного свойства-обёртки.
Но присвоение значений и привязок происходит через методы DP свойства, которое определяется как имя обычного свойства с добавлением в конец "Property".
Это кстати и причина того, что в оболочке не должно быть ничего кроме Set и GetValue.
Так как XAML обращается к DP свойству напрямую, не используя оболочку.
0
1 / 1 / 1
Регистрация: 27.05.2015
Сообщений: 86
04.12.2019, 14:29  [ТС]
Элд Хасп, эхх даже и не знаю, что ещё можно сделать
Возможно стоит переработать сам тип в UC и использовать не класс FIOWorkers, а как Вы ранее подметили обобщённые типы.
Я правда ещё не имел опыта работы с ними, буду щас искать инфу что и как
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.12.2019, 14:29
Помогаю со студенческими работами здесь

Кастомный контрол кривая линия
Подскажите как создать контрол в виде ТРУБЫ По сути необходимо сделать прогу как на картинке при этом цвет труб должен будет меняться,...

Как сделать чтобы заработал кастомный контрол зума?
Доброго времени суток! Озадачился сделать в своем графическом редакторе &quot;зум&quot; и &quot;скролл&quot;, причем качественные, так как...

кастомный checkbox
дизайнер надизайнил кастомній чекбокс (во вложении для наглядности) как это реализовать грамотно?

CheckBox в ListBox. Как получить индексы выбранных элементов
Добрый вечер. Только учусь. В приложении требуется реализовать функцию удаления выбранных элементов ListBox -a. Элементами являются ...

Кастомный item в listbox
тут никто не знает как сделать listview c 2 колонками... может тогда подскажете как на xe7 сделать кастомный item в listbox который...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так? Да, всё верно. Я — искусственный интеллект. Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает. В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше. Перед запуском проверяем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru