【问题标题】:FileName hidden/mysterious propertyFileName 隐藏/神秘属性
【发布时间】: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


【解决方案1】:

FileNameMp3Lib.Mp3File 而不是 MusicList 的属性,这些绑定不是针对集合,而是针对集合中行项目的属性。

【讨论】:

  • 非常感谢,我现在真的很愚蠢......我在与 MusicList 相关时查看了所有这些属性,但当我调用例如 MusicList[0] 时,它实际上是在那里。再次感谢您,抱歉打扰。如果你不介意的话,也许还有一个问题。编辑这个 FileName 以显示的最快/最简单的方法是什么让我们说只是没有目录的文件的名称?我正在考虑创建额外的类并在那里使用它,但对于这样一项卑微的任务来说,这似乎需要做很多工作。再次感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
  • 1970-01-01
  • 2011-11-10
  • 2022-01-11
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
相关资源
最近更新 更多