Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
В поиске
104 / 52 / 17
Регистрация: 20.04.2014
Сообщений: 826

Как в DataGridCheckBoxColumn.Header прибиндиться (MVVM)?

19.05.2017, 14:49. Показов 2237. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сейчас у меня такой контрол

Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<UserControl x:Class="КМЗклиент.View.Заявки.СоставЗаявки"
             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:КМЗклиент.View.Заявки"
             mc:Ignorable="d" d:DesignHeight="300">
    <Grid>
        <DataGrid RowHeaderWidth="0" CanUserAddRows="False"  AutoGenerateColumns="False" ItemsSource="{Binding Перечень2}">
            <DataGrid.Columns>
                <DataGridCheckBoxColumn Binding="{Binding CheckBoxСостояния}">
                    <DataGridCheckBoxColumn.Header>
                        <CheckBox IsChecked="{Binding Path=CheckBoxФлажек}"/>
                    </DataGridCheckBoxColumn.Header>
                </DataGridCheckBoxColumn>
                <DataGridTextColumn IsReadOnly="True" Header="Наименование детали"  Binding="{Binding ПокупаемоеИзделие}"/>
                <DataGridTextColumn IsReadOnly="True" Header="Обозначение"          Binding="{Binding Обозначение}"/>
                <DataGridTextColumn IsReadOnly="True" Header="Количество"           Binding="{Binding Количество}"/>
                <DataGridTextColumn IsReadOnly="True" Header="Цена"                 Binding="{Binding Цена}"/>
                <DataGridTextColumn IsReadOnly="True" Header="Состояние"            Binding="{Binding Состояние}"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</UserControl>


Кликните здесь для просмотра всего текста
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
43
44
45
46
47
48
49
50
51
52
53
54
    class СоставЗаявки : NotificationObject
    {
        #region Из чего состоит зоявка
        ObservableCollection<ТСоставныеЗаявки> _Перечень2 = new ObservableCollection<ТСоставныеЗаявки>() { new ТСоставныеЗаявки() { Обозначение="hhh" }, new ТСоставныеЗаявки() { Количество=9 } };
        public ObservableCollection<ТСоставныеЗаявки> Перечень2
        {
            get { return _Перечень2; }
            set
            {
                if (value == _Перечень2) return;
                _Перечень2 = value; OnPropertyChanged(nameof(Перечень2));
            }
        }
 
        bool _CheckBoxФлажек=true;
        public bool CheckBoxФлажек
        {
            get { return _CheckBoxФлажек; }
            set
            {
                if (value == _CheckBoxФлажек) return;
                _CheckBoxФлажек = value; OnPropertyChanged(nameof(CheckBoxФлажек));
 
 
                for (int i = 0; i < Перечень2.Count; i++)
                {
                    Перечень2[i].CheckBoxСостояния = value;
                }
 
            }
        }
        #endregion
    }
 
 
class ТСоставныеЗаявки : NotificationObject
    {
        public string ПокупаемоеИзделие { get; set; }
        public string Обозначение { get; set; }
        public int Количество { get; set; }
        public string Цена { get; set; }
        public string Состояние { get; set; }
 
        bool _CheckBoxСостояния = false;
        public bool CheckBoxСостояния
        {
            get { return _CheckBoxСостояния; }
            set
            {
                if (value == _CheckBoxСостояния) return;
                _CheckBoxСостояния = value; OnPropertyChanged(nameof(CheckBoxСостояния));
            }
        }
    }


как мне сделать чтобы по нажатию чекбокса в шапке все чексбоксы становились с этим значением

Раньше эту проблему решал через ресурс
XML
1
2
3
4
5
<DataGridCheckBoxColumn Binding="{Binding CheckBoxСостояния}">
                    <DataGridCheckBoxColumn.Header>
                        <CheckBox IsChecked="{Binding CheckBoxФлажек, Source={StaticResource Zayavki}}"/>
                    </DataGridCheckBoxColumn.Header>
                </DataGridCheckBoxColumn>
но сейчас нет такой возможности подключить ресурс

Добавлено через 3 часа 8 минут
Вопрос решен
XML
1
<CheckBox IsChecked="{Binding Path=DataContext.CheckBoxФлажек,RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
http://stackoverflow.com/quest... tagrid-wpf
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.05.2017, 14:49
Ответы с готовыми решениями:

WPF Toolkit MVVM contextmenu header column
Подскажите пожалуйста, нужно сделать контекстное меню для выбора столбцов, которые будут отображаться в datagrid. Добавит menuItems, а...

Как в DataGrid в колонке DataGridCheckBoxColumn рядом с птичкой вставить картинку из ресурсов?
Как в DataGrid в колонке DataGridCheckBoxColumn в XAML рядом с птичкой вставить картинку из ресурсов? Кто знает?

DataGrid и DataGridCheckBoxColumn
Приветствую. Есть DataGrid с колонкой CheckBox. &lt;DataGrid AutoGenerateColumns=&quot;False&quot; x:Name=&quot;DataGridView&quot; ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.05.2017, 14:49
Помогаю со студенческими работами здесь

DataGrid DataGridCheckBoxColumn изменить значение
Всем доброго дня.У меня есть Datagrid, один из столбцов которого типа DataGridCheckBoхColumn. Так как это поле динамически создаваемое, не...

DataGridCheckBoxColumn, отметить CheckBox с 1 click-а
WPF Есть DataGrid &lt;DataGrid Name=&quot;DataGrid&quot; AutoGenerateColumns=&quot;False&quot; ...

Выделение DataGridCheckBoxColumn по одному клику
Здравствуйте, уважаемые программисты! Проблема состоит в том, что по клику на DataGridCheckBoxColumn выделяется сначала строка, а галочка...

DataGridCheckBoxColumn дублирует isChached за пределами страницы
Добавляю в таблицу DataGridCheckBoxColumn затем привязываю к этой таблице источник данных DataTable, после чего происходят мистические...

Warning: Cannot modify header information - headers already sent в header('Location: /index.php');
Warning: Cannot modify header information - headers already sent by (output started at S:\home\localhost\www\new\cms\login.php:10) in...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru