在不使用内部标记的情况下为DataGrid指定资源

时间:2015-08-06 18:27:58

标签: c# wpf xaml datagrid

我通常使用以下XAML指定表的clickettiness。

<DataGrid>
  <DataGrid.Resources>
    <Style TargetType="DataGridRow">
      <EventSetter Event="MouseClick" Handler="ClickettyClick"/>
    </Style>
  </DataGrid.Resources>
</DataGrid>

刚才,我发现intellisense为我提供了属性 Resources ,而里面标签 DataGrid 的下颚括号。在纯粹的好奇心的推动下,我去了它,并得到了类似的东西。

<DataGrid Resources="" />

后一个示例中的 Resources 属性是否等同于第一个中的内部标记 Grid.Resources ?如果是这样,如何制定字符串的内容(即属性的参数),使其对应多标签版本?

我几乎认为这不会更顺畅,但是:(a)一个人永远不会知道,(b)学习处理代码的新方法总是很有趣。

1 个答案:

答案 0 :(得分:1)

它可以是资源字典资源

<UserControl.Resources>
    <ResourceDictionary x:Key="MyDictionary" 
                        Source="Dictionary1.xaml" />
</UserControl.Resources>

<DataGrid Resources="{StaticResource MyDictionary}" />

整合@Clemens的评论,应该非常明确地指出,可以用元素语法编写的某些内容不能用属性语法编写。

除非有一个特定的标记扩展,否则在元素语法中特别没有在属性语法中创建就地对象的方法。

此外,框架中没有像资源字典标记扩展这样的东西。