无法将字符串隐式转换为视图模型

Can´t implicity convert string to viewmodel

我有一个程序可以在列表视图中显示文件。 我的代码看起来像这样,但出现错误 "cannot convert from string into viewmodel" 如果我将 Additem(movies.MovieName) 更改为 Additem(movies),我不会收到错误,但它只会写出“MoviePlayerModule.ViewModelsMoviesViewModel”。 我希望它写入从 movies.MovieName = filename;

获得的文件名
 private void ReadMediaFile()
    {
       var movies = new MoviesViewModel();

        string[] files = Directory.GetFiles(Paths.Root);
        foreach (var file in files)
        {
           var filename = Path.GetFileName(file); 
          movies.MovieName = filename;
        };

        AddItem(movies.MovieName);     
    }

在文件名中它说:"ATTV_bog.mpg" 那是文件夹中的 mpg 文件。

如果我更改代码,它看起来像这样:

 var moviee = new MoviesViewModel();



        string[] files = Directory.GetFiles(@"C:/Users/v80770/Desktop/Movies");
        foreach (var file in files)
        {
            var filename = file;
            moviee.MovieName = filename;
        };

        AddItem(moviee); 

输出就是MoviePlayer.ViewModels.MoviesViewModel

在我看来代码是这样的:

    <Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <TextBlock x:Name="MovieName"  Grid.Column="0" />
</Grid>

我正在使用 CaliburnMicro。

视图模型class:

 public class MoviesViewModel : TreeViewNode<MoviesViewModel>
{
    public string MovieName { get; set; }
}

查看:

<UserControl x:Class="ClassName.MovieplayerModule.Views.MoviesView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <TextBlock x:Name="MovieName"  Grid.Column="0" />
</Grid>

和AddItem方法,位于TreeViewBase.cs

public void AddItem(T item)
    {
        _dispatcher.SmartInvoke(() => Items.Add(item));
    }

使用 AddItem(moviee) 将实际的 Movie 对象添加到 ListView,然后使用 DisplayMemberPath 属性 指定要显示的值的 MovieName 属性:

<ListView ... DisplayMemberPath="MovieName" .... />