Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
.NET 4.x

Изменение свойства у CheckBox в Design

05.09.2016, 19:56. Показов 2684. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Глупый вопрос.
Есть CheckBox.
XML
1
2
3
4
5
6
7
8
 <CheckBox Name="TSSetMaterial"
                  Grid.Row="0"
                  Width="85"
                  Height="15"
                  Margin="2"
                  Content="Назначить"
                  IsChecked="{Binding FibEnabled}"
                  Style="{StaticResource DescriptionHeaderStyle}" />
На него завязано отображение (в XAML по имени) кучки других контролов. Т.е. в режиме XAML я НЕ вижу этих контролов - что печалька.
А теперь вопрос: можно ли как-то задать IsChecked ="True" во время проектирования дизайна? Не стопицот раз перетирая Value и не комментируя/раскомментируя контрол? Может есть какие PRAGMA для XAML или что-то наподобие?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.09.2016, 19:56
Ответы с готовыми решениями:

Свойства компонента VLC в Design- и Run-Time
Доброго времени дня. Пишу свой простенький компонент - цветную кнопку для VCL. По задумке кнопка должна иметь три состояния - обычное,...

Тип 'Microsoft.CompactFramework.Design.UnsafeControl' не содержит свойства с именем 'ArText'
Доброго времени суток. Разрабатываю собственный компонента на основе Button. Добавил свойство с именем ArText, для установки...

Изменение свойства при изменении другого свойства
Предположим у меня есть товар,у которого есть несколько размеров и к каждому размеру привязана цена.Как сделать,к примеру я выбираю размер...

8
37 / 37 / 24
Регистрация: 13.12.2010
Сообщений: 113
06.09.2016, 10:02
skilllab, есть, сделайте специальную реализацию вашей вьюмодели (если конечно есть интерфейс, если нет, то сделайте), забейте туда нужные значения, можно прям в конструкторе по умолчанию, а у вьюхи добавьте такую конструкцию

XML
1
d:DataContext="{d:DesignInstance viewModels:MainWindowDesignViewModel}"
и все у вас получится
0
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
06.09.2016, 10:25  [ТС]
Цитата Сообщение от madguitar2010 Посмотреть сообщение
специальную реализацию
?? И типа менять DataContext во время уже инициализции?
Миниатюры
Изменение свойства у CheckBox в Design  
0
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
06.09.2016, 10:28  [ТС]
Цитата Сообщение от madguitar2010 Посмотреть сообщение
если конечно есть интерфейс
Есть View, есть ViewModel. Что за интерфейс?

Добавлено через 1 минуту
Цитата Сообщение от madguitar2010 Посмотреть сообщение
d : DesignInstance
ааа... mc:Ignorable="d"
Это понятно. С интерфейсом - не особо.
0
37 / 37 / 24
Регистрация: 13.12.2010
Сообщений: 113
06.09.2016, 11:11
Лучший ответ Сообщение было отмечено skilllab как решение

Решение

skilllab, есть у нас вьюмодель, например, называется MainWindowViewModel, в ней есть свойство IsChecked, которое где-то там в коде меняется, это свойство связано с чекбоксом на вьюхе. ТАк вот, вообще принято программировать на уровне интерфейсов, чтобы не зависеть от конкретной реализации. В данном случае нам это очень сильно поможет реализовать задуманное. Для этого описываем интерфейс IMainWindowViewModel:

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
public interface IMainWindowViewModel
    {
        bool IsChecked { get; set; } 
    }
 
    public class MainWindowViewModel : IMainWindowViewModel
    {
        private bool _isChecked;
 
        public bool IsChecked
        {
            get { return _isChecked; }
            set { _isChecked = value; }
        }
    }
 
    public class MainWindowViewModelDesign : IMainWindowViewModel
    {
        public bool IsChecked {get;set;}
public DesignViewModel()
        {
            IsChecked = true;
        }
    }
тем самым у нас есть 2 вьюмодели - одна рабочая, одна дизайнерская, обе реализуют один интерфейс, который будет дата контекстом вьюхи. Дизайнерскую привязываем как я описал выше, рабочую пихаем в датаконтекст каким угодно способом.

ну и OnPropertyChanged добавить надо, естественно, иначе вьюха не узнает об изменениях

Добавлено через 6 минут
skilllab,
Что за интерфейс?
вот, что за интерфейс
1
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
06.09.2016, 12:12  [ТС]
Цитата Сообщение от madguitar2010 Посмотреть сообщение
вот, что за интерфейс
Это то я знаю. Я как раз о том, что вы уже написали в этом сообщении выше.
Чуток оффтопа
Цитата Сообщение от madguitar2010 Посмотреть сообщение
чтобы не зависеть от конкретной реализации
Тут не понятно как ещё можно реализовывать ViewModel кроме как для View
0
37 / 37 / 24
Регистрация: 13.12.2010
Сообщений: 113
06.09.2016, 13:35
skilllab, я имел в виду, что логика у вас в одной вьюмодели, а для дизайнера у вас другая вьюмодель, и не надо постоянно править какие-то свойства в рабочей вьюмодели, чтобы проводить отладку вьюхи, для этого есть своя вьюмодель. Может я конечно криво объясняю.
0
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,045
Записей в блоге: 1
06.09.2016, 13:38  [ТС]
madguitar2010, да нет же. Это я всё прекрасно понял и сегодня же запилю.
Мне не понятно
Цитата Сообщение от madguitar2010 Посмотреть сообщение
принято программировать на уровне интерфейсов
я начитался, что типа так правильней и всякие DI потом...
Просто конкретно в данной теме: зачем нужен интерфейс, если тупо есть конкретная ViewModel и к ней конкретная View? Что можно такого потом сделать со ViewModel, что аж сделать её на уровне интерфейса
0
37 / 37 / 24
Регистрация: 13.12.2010
Сообщений: 113
06.09.2016, 14:29
skilllab, ну в данном случае, чтобы разделить рабочую вьюмодель и дизайновую

Добавлено через 20 минут
skilllab, а, ну и че-то я тупанул, это все в юнит тестах хорошо юзать, делаете так называемые mock вьюмодели и в тестах пихаете их куда ни попадя, это если образно, потому что использовать для тестов рабочую вьюмодель это моветон - а ну как там http запросы будут или еще чего
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.09.2016, 14:29
Помогаю со студенческими работами здесь

Изменение ObservableCollection: автоматическое изменение свойства при изменении в DataGrid
Здравствуйте. Имеется коллекция на 35 параметров. Значения 2 главных параметров складываются из определенных сумм остальных. Вывожу...

Свойства Checkbox
Есть матрица 2на2, что нужно сделать чтобы чекбокс стал не нажимаемым при значении 2 и снова нажимаемым при значении 1?

Свойства CheckBox
При разработке программы появился объект,который не в какую не хочет работать. Конкретнее: есть некий GroupBox, а в нем есть некоторое...

Перебрать свойства Checkbox
Как сделать также как и с RadioButton То есть выбор между двумя Можно сделать только для двух private void...

Delta Design - наш ответ Altium Design
Собственно сайт разработчиков: _http://www.delta-ecad.ru ( не сочтите рекламой). Импортозамещение активно шагает по стране. Год назад...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере 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
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru