我有一个silverlight(v2)数据网格,其中一些项目是节标题,因此必须以不同的背景颜色显示。
我正在尝试使用以下xaml执行此操作:
<dg:DataGrid.RowStyle>
<Style TargetType="dg:DataGridRow">
<Setter Property="Background" Value="{Binding Path=Background, Mode=OneTime}" />
</Style>
</dg:DataGrid.RowStyle>
我希望它将datagrid行viewmodel的Background属性绑定到每一行的Background属性,而不是我得到一个可爱的未知xaml解析错误:
{System.Windows.Markup.XamlParseException: AG_E_RUNTIME_MANAGED_UNKNOWN_ERROR [Line: 16 Position: 57]
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at Etana.Survey.Silverlight.UserInterface.Views.MaximumProbableLossPage.InitializeComponent()
at Etana.Survey.Silverlight.UserInterface.Views.MaximumProbableLossPage..ctor()}
如果我尝试明确指定“Red”并且不尝试绑定样式,那么它可以工作,所以我想知道silverlight是否允许我绑定这样的样式或者是否有其他技巧。
(xaml基于这个的wpf实现工作正常)
任何输入都会非常感激
答案 0 :(得分:4)
将绑定更改为TemplateBinding。例如
<dg:DataGrid.RowStyle>
<Style TargetType="dg:DataGridRow">
<Setter Property="Background" Value="{TemplateBinding Background, Mode=OneTime}" />
</Style>
</dg:DataGrid.RowStyle>
答案 1 :(得分:3)
版本号为4的Silverlight不支持Setter Value中的绑定。有一个解决方法作为附加属性实现: