c# – 使用转换器绑定到静态资源

我有一个DataGrid和两个StaticResource.

我想将DataGrid的RowStyle绑定到两个StaticResources之一.

RowStyle="{StaticResource {Binding Status, Converter={StaticResource MyConverter}}}"

MyConverter返回StaticResource的Key.

但我得到这个错误:

尝试读取或写入受保护的内存.这通常表明其他内存已损坏.

最佳答案 静态资源键不是可以动态分配的值.密钥的名称需要在Xaml中内联.

正确的方法是: –

RowStyle="{Binding Status, Converter={StaticResource MyConverter}}" 

根据“MyConverter”键存储的转换器返回Style对象.请注意,您可以向转换器添加ResourceDictionary类型的属性,并将样式放在该字典中,以便转换器进行查找.

事实上,我已经编写了一个能够满足here的转换器.

点赞