【发布时间】:2017-05-21 17:59:48
【问题描述】:
我有这个 DataGridCell,它调用了这个转换器。当它在通过转换器后显示在数据网格中时,我期望该单元格的值为“hi”(因为我将单元格“content”设置为“hi”)。
我在这里做错了什么?
<DataGridTextColumn Width="60" Header="Google" CanUserResize="True" CanUserSort="True">
<DataGridTextColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="ToolTip" Value="Current Position on Google" />
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.HeaderStyle>
<DataGridTextColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<EventSetter Event="MouseUp" Handler="IdUnselect"/>
<Setter Property="Background" Value="{Binding GoogleKeywordPositionMovementSinceLastWeekCheck, Converter={StaticResource NameToBrushConverter}}"/>
<Setter Property="Content" Value="{Binding Path=., Converter={StaticResource GooglePositionConvertor}}"/>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
public class GooglePositionConvertor : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
ResultCheckObject RankCheck = value as ResultCheckObject;
return "hi";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
【问题讨论】:
-
您绑定到当前源 Path=.,但是您当前的源是什么!?在转换器中,您将值转换为 ResultCheckObject 但只返回“嗨”,如果您不使用它,为什么还要转换该值?
-
如何通过转换器设置数据网格单元格的内容/文本?
-
例如,您可以有一些属性 int 来绑定数据上下文,然后该属性值将通过转换器并返回
-
现在想通了,需要在 DataGridTextColumn 中设置它,而不是使用
标签: c# wpf datagrid wpf-controls wpfdatagrid