0

ServiceNameでグループ化された ListView を作成していますが、 FileNameFilePathを表示できません。クラスと Xaml は次のとおりです。

public class SOService
{
    string _ServiceName;
    List<SOFileInfo> _SOFiles;

    public string ServiceName
    {
        get { return _ServiceName; }
        set { _ServiceName = value; }
    }
    public List<SOFileInfo> SOFiles
    {
        get { return _SOFiles; }
        set { _SOFiles = value; }
    }
}

public class SOFileInfo
{
    string _FileName;
    string _FilePath;

    public string FileName
    {
        get
        { return _FileName; }
        set { _FileName = value; }
    }
    public string FilePath
    {
        get { return _FilePath; }
        set { _FilePath = value; }
    }
}

ビューモデル:

public class SOServiceViewModel
{
    public SOServiceViewModel()
    {
        _Services = new List<SOService>();

        _Services.Add(new SOService()
        {
            ServiceName = "service1",
            SOFiles = new List<SOFileInfo>() { new SOFileInfo() { FileName = "File1", FilePath = "c:" } }
        });
    }
    List<SOService> _Services;

    public List<SOService> Services
    {
        get { return _Services; }
        set { _Services = value; }
    }
}

および Xaml: ここに画像の説明を入力

4

1 に答える 1

0

これが私が見つけた解決策です:

FileNamesとのリストを取得するプロパティを追加しますFilePaths

    public List<string> FileNames
    {
        get { return _SOFiles.Select(p => p.FileName).ToList(); }
        private set { }
    }
    public List<string> Filepaths
    {
        get { return _SOFiles.Select(p => p.FilePath).ToList(); }
        private set { }
    }

次に、Xaml ファイルで:

<GridViewColumn Header="File Name" Width="100">
                <GridViewColumn.CellTemplate>
                    <DataTemplate DataType="{x:Type local:SOFileInfo}">
                        <ItemsControl ItemsSource="{Binding FileNames}" ></ItemsControl>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Header="File Path" Width="100">
                <GridViewColumn.CellTemplate>
                    <DataTemplate DataType="{x:Type local:SOFileInfo}">
                        <ItemsControl ItemsSource="{Binding Filepaths}" ></ItemsControl>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
于 2012-12-03T13:38:00.030 に答える