是否可以在WPF中设置资源字典后面的代码。例如,在按钮的用户控件中,您可以在XAML中声明它。按钮单击的事件处理代码在控件后面的代码文件中完成。如果我要创建一个带有按钮的数据模板,我如何在资源字典中为它的按钮单击编写事件处理程序代码。
发布于 2008-09-25 23:17:30
我不同意“另类陷阱”的说法。使用分部类的方法不是一种好的做法。那么,将字典与页面分开的目的是什么呢?
从代码隐藏中,您可以使用以下命令访问x:Name元素:
Button myButton = this.GetTemplateChild("ButtonName") as Button;
if(myButton != null){
...
}
如果要在加载自定义控件时挂钩到控件,则可以在OnApplyTemplate方法中执行this。要做到这一点,需要重写OnApplyTemplate。这是一种常见的做法,允许您的样式与控件保持断开连接。(样式不应该依赖于控件,但控件应该依赖于具有样式)。
发布于 2009-11-27 20:33:38
Gishu -虽然这似乎是一个“通常不鼓励的做法”,但这里是你可能想要这样做的一个原因:
文本框获得焦点时的标准行为是将插入符号放置在控件失去焦点时的相同位置。如果您希望在整个应用程序中,当用户跳转到任何文本框时,文本框的整个内容都被突出显示,那么在资源字典中添加一个简单的处理程序就可以做到这一点。
您希望默认用户交互行为与开箱即用行为不同的任何其他原因似乎都是资源字典中隐藏代码的很好候选者。
完全同意,任何特定于应用程序功能的东西都不应该出现在资源字典后面的代码中。
发布于 2021-02-26 06:26:02
添加绑定的日子,随着{x: on....these ...}的出现,如果你想把你的DataTemplate放到一个共享的ResourceDictionary文件中,你需要给那个文件一个代码。
https://stackoverflow.com/questions/92100
复制相似问题