如何在 PropertyChangedCallback 中将 DependencyObject 转换为 FileInfo

斯蒂尔·托尼

我有一个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”

我想也许我遗漏了一些明显的东西(我可能是)但微软这个答案似乎同意我做的大致正确。

毫米8

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Clojure中将'('(...)'(...)...)转换为[[...] [...] ...]?

来自分类Dev

如何在Python中将'+'转换为+

来自分类Dev

如何在Python中将'+'转换为+

来自分类Dev

如何在Android中将char'转换为\'?

来自分类Dev

如何在Clojure中将'('(...)'(...)...)转换为[[...] [...] ...]?

来自分类Dev

如何将openFileDialog.FileNames转换为FileInfo []

来自分类Dev

如何在Golang中将[] string转换为[] float64?

来自分类Dev

如何在MySQL中将位转换为字符串?

来自分类Dev

如何在Lodash中将对象数组转换为对象?

来自分类Dev

如何在golang中将int转换为bigint?

来自分类常见问题

如何在python中将int转换为Enum?

来自分类Dev

如何在Swift中将Unicode字符转换为Int

来自分类Dev

如何在Java中将任何类的对象转换为Map?

来自分类Dev

如何在MVC操作中将发布的XML转换为POCO?

来自分类Dev

如何在LLVM中将CallInst类型转换为GlobalVariable

来自分类Dev

如何在Swift中将CMTime转换为NSValue?

来自分类Dev

如何在Django中将文件路径转换为URL

来自分类Dev

如何在Postgres中将XML转换为JSONB

来自分类Dev

如何在Swift中将Any转换为Int

来自分类Dev

如何在字典中将IEnumerable <string>转换为IList <string>?

来自分类Dev

如何在C ++中将向量迭代器转换为int

来自分类Dev

如何在R中将list()转换为省略号?

来自分类Dev

如何在PHP中将数组转换为关联数组

来自分类Dev

如何在纯Vimscript中将{date}转换为{time}

来自分类Dev

如何在Netezza中将整数字段转换为日期?

来自分类Dev

如何在Lua中将字符串转换为表

来自分类Dev

如何在Java中将Blob对象转换为PDF文件?

来自分类Dev

如何在SAS中将日期值从天转换为季度

来自分类Dev

如何在bash中将列表转换为字符串?

Related 相关文章

  1. 1

    如何在Clojure中将'('(...)'(...)...)转换为[[...] [...] ...]?

  2. 2

    如何在Python中将'+'转换为+

  3. 3

    如何在Python中将'+'转换为+

  4. 4

    如何在Android中将char'转换为\'?

  5. 5

    如何在Clojure中将'('(...)'(...)...)转换为[[...] [...] ...]?

  6. 6

    如何将openFileDialog.FileNames转换为FileInfo []

  7. 7

    如何在Golang中将[] string转换为[] float64?

  8. 8

    如何在MySQL中将位转换为字符串?

  9. 9

    如何在Lodash中将对象数组转换为对象?

  10. 10

    如何在golang中将int转换为bigint?

  11. 11

    如何在python中将int转换为Enum?

  12. 12

    如何在Swift中将Unicode字符转换为Int

  13. 13

    如何在Java中将任何类的对象转换为Map?

  14. 14

    如何在MVC操作中将发布的XML转换为POCO?

  15. 15

    如何在LLVM中将CallInst类型转换为GlobalVariable

  16. 16

    如何在Swift中将CMTime转换为NSValue?

  17. 17

    如何在Django中将文件路径转换为URL

  18. 18

    如何在Postgres中将XML转换为JSONB

  19. 19

    如何在Swift中将Any转换为Int

  20. 20

    如何在字典中将IEnumerable <string>转换为IList <string>?

  21. 21

    如何在C ++中将向量迭代器转换为int

  22. 22

    如何在R中将list()转换为省略号?

  23. 23

    如何在PHP中将数组转换为关联数组

  24. 24

    如何在纯Vimscript中将{date}转换为{time}

  25. 25

    如何在Netezza中将整数字段转换为日期?

  26. 26

    如何在Lua中将字符串转换为表

  27. 27

    如何在Java中将Blob对象转换为PDF文件?

  28. 28

    如何在SAS中将日期值从天转换为季度

  29. 29

    如何在bash中将列表转换为字符串?

热门标签

归档