【发布时间】:2015-11-09 15:12:58
【问题描述】:
我有一个组合框,我想在其中显示某个文件夹中的文件名。
<ComboBox ItemsSource="{Binding Path=Jobs}" DisplayMemberPath="Name"/>
绑定属性Jobs 是List<FileInfo> 类型,我认为这是最适合存储此类信息的类型。一个简单的Directory.GetFiles 从给定目录中的一个数组中获取所有文件,LINQ-魔法转换为List<FileInfo>。
默认情况下,ComboBox 现在会显示文件的完整路径。使用DisplayMemberPath="Name" 参数,我得到ComboBox 以仅显示文件名和扩展名。
我需要做什么才能让ComboBox 只显示像Path.GetFileNameWithoutExtension() 这样的文件名会给我?
我想避免将Jobs 更改为List<Tuple<string,string>> 或类似的东西以将文件名和文件夹存储在不同的变量中。
【问题讨论】:
-
要么使用
IValueConverter,要么将列表项更改为具有附加属性的自定义对象
标签: c# wpf mvvm data-binding combobox