我有一个使用DataTemplate定义的视图。我希望能够将一个文件拖到我的视图上的TextBox中,用一个完整的文件名填充它。但是,由于我的视图是一个DataTemplate,所以它没有代码隐藏,我无法理解如何连接DragEnter和拖动事件。
在MVVM中是否有一种整洁的方法来做到这一点?
发布于 2014-04-08 16:00:39
如果DataTemplate驻留在资源字典中,则可以创建相关的代码隐藏文件。
假设您的资源字典名为"Foo.xaml“。创建一个同名的类文件(即( "Foo.cs")在同一个项目文件夹中,使其成为部分,并让它从ResourceDictionary继承。另外,在构造函数中调用InitializeComponent():-
public partial class Foo : ResourceDictionary
{
public Foo()
{
InitializeComponent();
}
// etc..
}现在,在xaml中,向ResourceDictionary元素添加一个ResourceDictionary属性,例如:-
<ResourceDictionary x:Class="Namespace.ClassName"
xmlns="...etc...现在您应该发现可以将事件添加到控件中,就像在UserControl中一样。
https://stackoverflow.com/questions/22938333
复制相似问题