2010-11-10 3 views
2

Это то, что я хочу: Когда пользователь нажимает на кнопку, все строки, которая удовлетворяет критериям, должны иметь добавил эффект размытияДобавить эффект для некоторых строк в DataGrid

Проблема: только путь, который я нашел для этого, находится в событии LoadRow. Но в моем случае строка уже загружена, когда я хочу применить эффект размытия.

Вопрос: Как перебирать строки так, чтобы я мог применить эффект размытия. Или, что еще лучше, как я могу привязать эффект к ряду?

Это мой код, который работает только при применении эффекта при запуске:

private void dg_LoadingRow(object sender, DataGridRowEventArgs e) 
    { 
     if (true) // Logic for figuring out if a row should be blur'ed 
      e.Row.Effect = new BlurEffect { Radius = 8 }; 
    } 

Спасибо за любую помощь

Larsi

ответ

1

Я нашел решение этой проблемы:

Bind к свойство Effect на DataGridCellPresenter вот так:

<sdk:DataGridCellsPresenter x:Name="CellsPresenter" Grid.Column="1" sdk:DataGridFrozenGrid.IsFrozen="True" Effect="{Binding ., Converter={StaticResource BlurConverter}}"/> 

И конвертер просто:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
{ 
    // Some logic... 
    return new BlurEffect { Radius = 8 }; 
} 

Lars Erik

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