Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
4 / 4 / 4
Регистрация: 22.03.2012
Сообщений: 73
1

Настройки шрифта в зависимости от значения свойства в DataContext

23.08.2018, 16:00. Показов 1458. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть список "областей", которые я отображаю в TreeView. Если у "области" стоит признак, то нужно изменить шрифт названия этой "области". Погуглил, но рабочего варианта не вышло (жирным не выделяется). Подскажите в какую сторону двигаться.
Вот что у меня есть:
Элемент списка
C#
1
2
3
4
5
6
7
8
9
public class DTO_CalcPartSimple
    {        
        public int Id { get; set; }
 
        public string Name { get; set; }
 
        public Boolean IsCalculated { get; set; }
 
    }
Код DataContext:
C#
1
2
3
4
5
6
7
public partial class ItemsControlDataBindingCalcPart 
    {
        public int CalcYear { get; set; }
        public string CalcPeriod { get; set; }
        public CalculateType CalcType { get; set; }
        public ObservableCollection<DTO_CalcPartSimple> CalcPartItems { get; set; }
    }
код контрола:
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
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
64
65
66
67
68
69
70
71
72
73
74
75
<UserControl 
             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:ik.Pmg.Views"
             xmlns:dxdo="http://schemas.devexpress.com/winfx/2008/xaml/docking" xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol" xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" x:Class="ik.Pmg.Views.MainControl"
             mc:Ignorable="d" d:DesignWidth="1325"  d:DesignHeight="697.5" Initialized="MainControl_OnInitialized">
 
    <UserControl.Resources>
        <local:BoolToFontWeightConverter x:Key="BoolToFontWeightConverter"/>
    </UserControl.Resources>
 
 
    <Grid Margin="0,0,0,0">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" MinHeight="200"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions >
            <ColumnDefinition Width="Auto" MinWidth="200" MaxWidth="500"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*" MinWidth="200"/>
        </Grid.ColumnDefinitions>
        
        <Menu Grid.Row="0" Height="30" Grid.ColumnSpan="3" VerticalAlignment="Top">
            
        </Menu>
 
        <dxb:StatusBarControl Grid.Row="2" Height="30" Grid.ColumnSpan="3" Margin="0" VerticalAlignment="Bottom">
            <dxb:BarStaticItem Content="awrtygsed"/>
            <dxb:BarItemLinkSeparator/>
            <dxb:BarStaticItem Content="!!!!!!!!!!!!"/>
        </dxb:StatusBarControl>
 
        
        <GridSplitter 
            ResizeDirection="Columns" 
            Grid.Column="1"
            Grid.Row="1" 
            Width="5" 
            HorizontalAlignment="Stretch" 
            VerticalAlignment="Stretch" 
            Margin="0"/>
 
        <TreeView Name="tvParts" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding CalcPartItems}">
            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding Path=CalcPartItems}">
                    <StackPanel Orientation="Horizontal">
                        <StackPanel.Resources>
                            <DataTemplate x:Key="BoldTemplate">
                                <TextBlock
                                    FontWeight="{Binding Path=isCalculated, Converter={StaticResource BoolToFontWeightConverter}}"
                                    Text="{Binding Path=Name}" 
                                />
                            </DataTemplate>
                        </StackPanel.Resources>
                        
                        <ContentControl Content="{StaticResource BoldTemplate}"/>
                        
                        <CheckBox IsChecked="{Binding IsCalculated}" IsEnabled="False"/>
 
                        <TextBlock Text="{Binding Name}" FontWeight="{Binding Path=isCalculated, Converter={StaticResource BoolToFontWeightConverter}}"/>
                        
                    </StackPanel>
                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
 
        </TreeView>
       
        
    </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
class BoolToFontWeightConverter : IValueConverter
    {
        #region IValueConverter Members
 
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if ((bool)value)
            {
                return FontWeights.Bold;
            }
 
            return FontWeights.Normal;
        }
 
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
 
        #endregion
 
    }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2018, 16:00
Ответы с готовыми решениями:

Изменение цвета шрифта TextBox в зависимости от значения
Всем привет. Суть проблемы попытаюсь объяснить максимально понятно. У меня есть форма, которую вы...

Изменить цвет шрифта в зависимости от значения TextBox.Text
Простенький пример меняющий цвет шрифта TextBox в зависимости содержимого (меньше нуля - красный):...

Вывод картинки в зависимости от значения свойства
Приветствую, ребята! Возник такой вопросик. Можно ли сделать так, чтобы в Image выводилась картинка...

Формат ячеек DataGrid (фон, цвет шрифта) в зависимости от значения в них
в WinForms у DataGridView есть событие Cell_Formating. В этом событии можно было проверить...

3
879 / 558 / 291
Регистрация: 21.11.2012
Сообщений: 1,553
24.08.2018, 09:59 2
Лучший ответ Сообщение было отмечено Romeo7in как решение

Решение

у вас в привязке ошибка:
C#
1
public Boolean IsCalculated { get; set; }
XML
1
2
3
<TextBlock FontWeight="{Binding Path=isCalculated, Converter={StaticResource BoolToFontWeightConverter}}"
                                    Text="{Binding Path=Name}" 
/>
0
4 / 4 / 4
Регистрация: 22.03.2012
Сообщений: 73
24.08.2018, 11:07  [ТС] 3
Спасибо, что-то я невнимательный совсем(
0
Эксперт .NET
1838 / 1346 / 427
Регистрация: 10.06.2011
Сообщений: 2,126
24.08.2018, 11:59 4
Romeo7in, рекомендую смотреть в панель Output. Там пишется информация об ошибках Binding'а.
0
24.08.2018, 11:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.08.2018, 11:59
Помогаю со студенческими работами здесь

PropertyGrid. Как отловить видимость свойства в зависимости от другого свойства?
Работаю с propertyGrid. Одно поле высвечивается, когда в другом появляется определенное значение....

Настройки Шрифта
Установить на форме две кнопки BitBtn, три Checkbox, один Memo(как на рис.1). По нажатию на кнопку...

Свойства шрифта в TreeView
Всем привет. В TreeView, в обработчике события OnAdvancedCustomDrawItem требуется вывести на канву...

Задать свойства шрифта в dbgrid
Всем привет! Как можно сделать, что бы в зависимости от значения поля Activate шрифт текущей...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru