Я занимаюсь разработкой веб-части Silverlight, используя объектную модель клиента.У меня есть один конвертер в моем проекте следующим образом
public class ForeGroundConverter : IValueConverter
{
public ForeGroundConverter()
{
}
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
//return "";
SolidColorBrush result = new SolidColorBrush(Colors.Black);
return result;
}
// No need to implement converting back on a one-way binding
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Я использую этот конвертер для привязки для следующего элемента
<sdk:DataGridTemplateColumn SortMemberPath="ClientName" Header="Client Name" IsReadOnly="True" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding ClientName}" Foreground="{Binding Foreground, Converter={StaticResource ForegroundConverter}}"></TextBlock>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
У меня есть одно свойство, определенное в классе TimeLog следующим образом
public SolidColorBrush Foreground {get;set;}
У меня нормально работает переплет.Теперь у меня есть событие loadrow для сетки данных следующим образом.
SummaryDataGrid_LoadingRow
private void SummaryDataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
if (PaidList.Contains(timeLogObj))
{
int index = PaidList.IndexOf(timeLogObj);
PaidList[index].IsEnabled = false;
PaidList[index].CheckBoxVisibility = Visibility.Collapsed;
PaidList[index].Foreground = new SolidColorBrush(Color.FromArgb(50, 150, 150, 150));
}
}
Пожалуйста, посмотрите следующую строку в коде выше
PaidList[index].Foreground = new SolidColorBrush(Color.FromArgb(50, 150, 150, 150));
В приведенной выше строке я хочуделать привязку для свойства Foreground textblok динамически для определенного индекса строки.В этом случае я хочу, чтобы преобразователь принял значение как (верните следующее значение для конкретного индекса строки)
new SolidColorBrush(Color.FromArgb(50, 150, 150, 150));
Я не знаю, как это сделать.Можете ли вы предоставить мне какой-либо код или ссылку для вышеуказанного вопроса?Если я делаю что-то не так, то, пожалуйста, направь меня.