我有一个FileInfo
类型的DependencyProperty,并在PropertyChangedCallback
,我不能投的DependencyObject
,以FileInfo
输入。
public static readonly DependencyProperty TargetFileProperty =
DependencyProperty.Register("TargetFile", typeof(System.IO.FileInfo), typeof(FileSelectGroup), new PropertyMetadata(propertyChangedCallback: new PropertyChangedCallback());
private PropertyChangedCallback OnTargetFileChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var f = (System.IO.FileInfo)d; // THIS LINE GIVES ERROR BELOW
}
错误是:
无法将类型“System.Windows.DependencyObject”转换为“System.IO.FileInfo”
d
是指定义依赖属性的控件,即FileSelectGroup
.
您应该能够转换e.NewValue
为 aSystem.IO.FileInfo
以获取依赖项属性的新值:
private PropertyChangedCallback OnTargetFileChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var f = e.NewValue as System.IO.FileInfo;
if (f != null)
{
//...
}
}
或者,您可以强制d
转换FileSelectGroup
并访问TargetFile
控件的属性:
private PropertyChangedCallback OnTargetFileChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var ctrl = d as FileSelectGroup;
if (ctrl != null)
{
System.IO.FileInfo f = ctrl.TargetFile;
if (f != null)
{
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句