【问题标题】:Define Style in ResourceDictionary, but EventSetter locally在 ResourceDictionary 中定义 Style,但在本地定义 EventSetter
【发布时间】:2018-09-22 18:33:25
【问题描述】:

我重新设置了 DataGrid 的样式,但它变得相当复杂,因此我将样式(DataGrid、DataGridCell、DataGridRow、...)移动到了 ResourceDictionary。我给了他们一个 x:Key 并引用了它们,例如作为 DataGrid.RowStyle="{StaticResource SuperRowStyle}"。现在我也想在 Row 上使用 EventSetter,但显然我不能在 ResourceDictionary 中设置它,但我也不能在 Window 中设置它,因为它被 RowStyle 属性覆盖。我怎样才能做到这一点? BR, 丹尼尔

【问题讨论】:

  • 在窗口中创建一个新样式,基于资源字典中定义的样式。使用这种风格的 EventSetter。

标签: wpf datagrid styling


【解决方案1】:

我会自己回答,因为 cmets 提供了一个很好的解决方案。我在需要 EventSetter 的窗口中创建了一个样式,并将 BasedOn 与所需的样式一起使用。

【讨论】:

  • 天哪,完全有道理。我已经为此苦苦挣扎了几个小时。
【解决方案2】:

现在我也想在 Row 上使用 EventSetter,但显然我不能在 ResourceDictionary 中设置它..

是的,您可以将代码隐藏文件添加到ResourceDictionary

Is it possible to set code behind a resource dictionary in WPF for event handling?

处理程序必须定义在与EventSetter 相同的类中。

【讨论】:

  • 我看到了,但我希望能够将 Window 类用于 EventHandler。但是,这不起作用。
  • 没有。正如我所提到的,您不能在一个类中定义 EventSetter 而在另一个类中定义事件处理程序。这行不通。但是无论如何都应该没有理由这样做。您可以在事件处理程序中调用任何您想要的方法。
猜你喜欢
  • 1970-01-01
  • 2010-12-31
  • 1970-01-01
  • 1970-01-01
  • 2017-08-09
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 2015-06-15
相关资源
最近更新 更多