【发布时间】:2015-08-23 23:08:18
【问题描述】:
今天在编写一个简单的应用程序以根据他们的艺术家和专辑将音乐放入文件夹时,我遇到了令我惊讶的事情。
我使用 ListView 只是为了显示文件到我的信息:
<Grid Margin="10" MaxHeight="300">
<ListView ItemsSource="{Binding MusicList}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.View>
<GridView>
<GridViewColumn Header="File Name" DisplayMemberBinding="{Binding FileName}" Width="250"/>
<GridViewColumn Header="Artist" DisplayMemberBinding="{Binding TagHandler.Artist}" Width="150"/>
<GridViewColumn Header="Album" DisplayMemberBinding="{Binding TagHandler.Album}" Width="150"/>
<GridViewColumn Header="Title" DisplayMemberBinding="{Binding TagHandler.Title}" Width="200"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
MusicList 是在库“Mp3Lib”的帮助下创建的数组,它是这样的
public Mp3Lib.Mp3File[] MusicList
{
get { return musicList; }
private set
{
musicList = value;
OnPropertyChanged("MusicList");
}
}
private Mp3Lib.Mp3File[] musicList;
List 视图本身绑定到 MusicList,而 Artist、Album 和 Title 绑定到 TagHandler.Artist 等等。 TagHandler 直接来自 MusicList,这绝对有意义。
我的问题是关于这个文件名。老实说,我只是偶然把它放在那里,打算用那个名字或其他东西创建一些属性,但我没有。当我启动程序时,我惊讶地发现该列充满了完整的文件目录,其名称如下:
我不知道的是 FileName 属性来自哪里,有没有我可以使用的类似属性?再次声明,我没有这个名字的属性,MusicList 也没有。
如果有人对此有所了解,我将不胜感激。
【问题讨论】:
-
请不要使用指向外部资源的链接来支持您的问题。堆栈溢出问题应该是完全独立的,以确保在外部资源更改或完全删除时不会过时。请做提供可靠地重现问题的a good, minimal, complete code example。
-
@PeterDuniho 我确实删除了链接。请注意,这不是问题的重要组成部分,而只是想要更深入的人的补充。由于我不知道代码答案的位置,我决定提供它的链接。尽管如此,我删除了链接只是没有违反本网站的规则。
-
链接不被禁止...只是问题不能依赖它们。就个人而言,我觉得你的问题没有足够的信息——绑定到
Mp3Lib.Mp3File类型取决于该类型的声明,但你的问题没有显示该类型——但其他人可能会有不同的感觉。我的意思不是你应该删除链接,而是你应该通过提供重要的、缺失的细节来改进问题。
标签: c# wpf properties filenames hidden