2015-07-29 1 views
0

У меня есть пользовательский DataGrid и в OnAutoGeneratingColumn Я создаю стиль в соответствии с типом столбца. У меня есть первый столбец с DateTime, который я не хочу менять, а затем остальное, где я хочу определить, находится ли значение вне пределов. Теперь я хочу изменить фон, если значение выходит за его пределы, и я хочу также изменить цвет фона. Поэтому я создал свойство зависимости и в триггере данных хочу привязать цвет к этому свойству. Единственная проблема заключается в том, что она не работает. Есть идеи?Программно связать сеттер с пользовательским свойством зависимости

Моя собственность зависимость

public Color BiggerThanMaxBackgroundColor 
{ 
    get { return (Color)GetValue(BiggerThanMaxBackgroundColorProperty); } 
    set { SetValue(BiggerThanMaxBackgroundColorProperty, value); } 
} 

public static readonly DependencyProperty BiggerThanMaxBackgroundColorProperty = 
     DependencyProperty.Register("BiggerThanMaxBackgroundColor", typeof(Color), typeof(MwiTableDataGrid), new PropertyMetadata(default(Color))); 

Настройка стиля в OnAutoGeneratingColumn

//Trigger to check if the number is higher than the top limit 
DataTrigger higherTrigger = new DataTrigger(); 
higherTrigger.Binding = new Binding(columnHeaderName) 
       { 
       Converter = new MoreThanConverter(), 
       ConverterParameter = SelectedDevices[this.Columns.Count - 1].maxValue 
       }; 
higherTrigger.Value = "True"; 

binding = new Binding 
       { 
       Source = this, 
       Path = new PropertyPath("BiggerThanMaxBackgroundColor") 
       }; 
higherTrigger.Setters.Add(new Setter(BackgroundProperty, binding)); 

Style style = new Style(typeof(DataGridCell)); 
style.Triggers.Add(higherTrigger); 

e.Column.CellStyle = style; 

ответ

0

Попробуйте добавить сеттера к стилю, вне триггера, который будет инициализировать значение фона.

style.Setters.Add(new Setter(BackgroundProperty, Brushes.White)); 
+0

Это не проблема, но это позволило мне решить проблему. Проблема была в том, что свойство Background имеет тип SolidColorBrushe, и я использовал Color ... – MartinVotruba

 Смежные вопросы

  • Нет связанных вопросов^_^