Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF DataGrid + Style.Triggers / 6 сообщений из 6, страница 1 из 1
25.11.2009, 12:02
    #36330425
Яzz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF DataGrid + Style.Triggers
Господа,

нуно, что б строки в гриде подсвечивались красным там, где выставлен флаг true у свойства
Код: plaintext
public IsError {get; set;} 
прибинденой коллекции ObservableCollection.

Как это сделать?

Пытаюсь триггером, как то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 <Window.Resources>
        <Style x:Key="FontStyle"/>
        <Style TargetType="toolkit:DataGrid">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=IsError}" Value="true">
                    <Setter Property="Foreground" Value="Red" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>

не шуршит.... Что тут не так?
...
Рейтинг: 0 / 0
25.11.2009, 12:31
    #36330526
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF DataGrid + Style.Triggers
В IsError должен быть реализован INotifyPropertyChanged
...
Рейтинг: 0 / 0
08.02.2010, 07:10
    #36454609
Frolls
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF DataGrid + Style.Triggers
Та же история.. Реализован INotifyPropertyChanged, но все-равно не хочет работать :-(

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<Window.Resources>
	<Style TargetType="{x:Type Custom:DataGrid}">
		<Setter Property="Control.FontSize" Value="24" />
		<Setter Property="Control.Foreground" Value="Blue" />
		<Setter Property="Control.HorizontalAlignment" Value="Center" />
		
		<!-- Триггеры -->
		<Style.Triggers>
			<Trigger Property="Control.IsMouseOver" Value="True">
				<Setter Property="Control.FontStyle" Value="Italic" />
			</Trigger>
			<DataTrigger Binding="{Binding Path=IsError}" Value="True">
				<Setter Property="Foreground" Value="Red" />
			</DataTrigger>
		</Style.Triggers>
	</Style>
	<Storyboard x:Key="OnLoaded1"/>
</Window.Resources>

У кого-нибудь получилось?
С уважением, =[Frolls]=
...
Рейтинг: 0 / 0
08.02.2010, 07:27
    #36454613
Frolls
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF DataGrid + Style.Triggers
Заработало!!

<Style TargetType="toolkit:DataGrid"> надо заменить на <Style TargetType="toolkit:DataGridRow">

С уважением, =[Frolls]=
...
Рейтинг: 0 / 0
08.02.2010, 09:26
    #36454686
Frolls
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF DataGrid + Style.Triggers
Еще можно добавить анимации:
Код: 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.
<Window.Resources>
	<Style TargetType="{x:Type Custom:DataGridRow}">
		
	
		<Setter Property="Control.FontSize" Value="24" />
		<Setter Property="Control.Foreground" Value="Blue" />
		<Setter Property="Control.HorizontalAlignment" Value="Center" />
		
		<!-- Триггеры -->
		<Style.Triggers>
			<Trigger Property="Control.IsMouseOver" Value="True">
				<Setter Property="Control.FontStyle" Value="Italic" />
			</Trigger>
			<DataTrigger Binding="{Binding Path=IsError}" Value="True">
			<Setter Property="Control.Background" Value="Red" />
				<DataTrigger.EnterActions>
            <BeginStoryboard>
              <Storyboard>
                <DoubleAnimation
                 Storyboard.TargetProperty="Opacity"
                 From="0.5" To="1" Duration="0:0:0.2" 
                 RepeatBehavior="Forever"
                 AutoReverse="True"/>
              </Storyboard>
            </BeginStoryboard>
          </DataTrigger.EnterActions>
          <DataTrigger.ExitActions>
            <BeginStoryboard> 
              <Storyboard FillBehavior="Stop">
                <DoubleAnimation
                  Storyboard.TargetProperty="Opacity"
                  To="1" Duration="0:0:0.2" />
              </Storyboard>
            </BeginStoryboard>  
          </DataTrigger.ExitActions>
			</DataTrigger>
		</Style.Triggers>
	</Style>
</Window.Resources>


С уважением, =[Frolls]=
...
Рейтинг: 0 / 0
11.02.2010, 14:36
    #36463332
Frolls
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WPF DataGrid + Style.Triggers
Мдя.. А анимация-то не хило "кушает".. Да и вообще, пришел к выводу, что DataGrid довольно-таки жадный до ресурсов контрол. При скроллинге и то притормаживает. Вот она -- хваленая виртуализация. Хотя, может просто контрол еще сырой

С уважением, =[Frolls]=
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF DataGrid + Style.Triggers / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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