我最近开始试验 DataBinding 并为我的自定义类实现 DependencyProperties。这一切都很好,而且可能性令人兴奋,但是,我遇到了一个可能只能通过稍微修改整体类设计来解决的问题。我想确保这是唯一的选择,而且我没有遗漏任何东西。
因此,我的班级存储有关用户导入应用程序的视频文件的信息。除其他属性外,它还包含:
public class VideoFile {
public string FilePath { get; protected set; }
public uint ID { get; protected set; ]
public string Extension { get { return Path.GetExtension(FilePath); } }
public string FileName { get { return Path.GetFilename(FilePath); } }
}
所以,我已经成功地将 FilePath 替换为 DependencyProperty。但是,在 UI 中,我主要想只显示文件名,它使用一些逻辑来提供其值。据我所知,这是我的选择:
- 我可以简单地为 FileName 和 Extension 创建 DependencyProperties,并在构造函数中设置它们的值,但这是多余的;我已经在 FilePath 中有这些信息,所以我想避免这个选项。
- 创建 ValueConverters,一个用于显示文件名,一个用于显示扩展名,并在我的绑定中使用它们。
我只是简单地遇到了 ValueConverters,所以我不确定。我可以将它们用于此目的吗?或者,我是否刚刚遇到了它们存在的主要原因之一?:)
最后但并非最不重要的一点是,当 ValueConverter 不是正确的方法时,谁能想到类似的情况?我想避免直接跳入它们,只是意识到它不起作用,因为“那个”属性不能以这种方式表达。