Просмотр информации о файле из папки в DataGrid - PullRequest
0 голосов
/ 29 мая 2020

Я хочу просмотреть информацию о файле из папки в datagrid.

MainWindow.xaml:

<TabItem Header="Happy" Width="60" Height="30">
    <Grid Margin="0,0,0,0">
        <DataGrid x:Name="MusicTabHappy" AutoGenerateColumns="False" Margin="10">
            <DataGrid.Columns>
                <DataGridTextColumn Header="File Name"/>
                <DataGridTextColumn Header="Time"/>
                <DataGridTextColumn Header="Format"/>
                <DataGridTextColumn Header="Size"/>
                <DataGridTextColumn Header="*"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</TabItem>

MainWindow.xaml.vb:

Public Class MusicLibrary
    Private Sub MusicTabHappy_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles MusicTabHappy.SelectionChanged
    (###)
    End Sub

    Public Shared Function GetFileName(path As String) As String
        Dim filename As String = "C:\User\Desktop\A"
        result = path.GetFileName(filename)
        (###)
    End Function
End Class

Пожалуйста Помогите мне, большое вам спасибо.

1 Ответ

1 голос
/ 29 мая 2020

Вы можете использовать API Directory.GetFiles и FileInfo для получения информации о файлах. В приведенном ниже примере для ItemsSource из DataGrid устанавливается IEnumerable(Of FileInfo):

MusicTabHappy.ItemsSource = System.IO.Directory.GetFiles("C:\Temp").Select(Function(fileName)
                                                                               Return New FileInfo(fileName)
                                                                           End Function).ToArray()

Затем вы должны выполнить привязку к свойствам FileInfo в разметке XAML:

<DataGrid x:Name="MusicTabHappy" AutoGenerateColumns="False" Margin="10">
    <DataGrid.Columns>
        <DataGridTextColumn Header="File Name" Binding="{Binding Name}"/>
        <DataGridTextColumn Header="Time" Binding="{Binding LastAccessTime}"/>
        <DataGridTextColumn Header="Format" Binding="{Binding Extension}"/>
        <DataGridTextColumn Header="Size" Binding="{Binding Length}"/>
        <DataGridTextColumn Header="*" Width="*"/>
    </DataGrid.Columns>
</DataGrid>
...