如何在 c# wpf 中的列表视图数据模板中的每一行添加一个按钮

How to add a button to each row in List View Data Template in c# wpf

我将此代码作为我的列表视图:

<ListView x:Name="listViewPhotoLibrary">
 <ListView.ItemTemplate>
  <DataTemplate>
   <Grid>
    <Grid.ColumnDefinitions>
     <ColumnDefinition Width="47"/>
     <ColumnDefinition Width="100"/>
    </Grid.ColumnDefinitions>
    <Button Content="X"/>
    <TextBlock Foreground="Teal"/>
   </Grid>
  </DataTemplate>
 </ListView.ItemTemplate>
</ListView>

并且我使用字符串列表作为其项目来源

List<string> libraries = new List<string>(Properties.Settings.Default.Paths.Split(new char[] { ';' }));
            libraries = libraries.Where(s => !string.IsNullOrEmpty(s)).Distinct().ToList();
            listViewPhotoLibrary.ItemsSource = libraries;

我的问题是列表视图没有显示文本。 this is what i get.

我哪里做错了?有哪些适合理解数据模板的读物?

网格中的元素缺少列号,文本框也没有内容,试试这个:

<Button Grid.Column="0" Content="X"/>
<TextBlock Grid.Column="1" Foreground="Teal" Text="Some text"/>

要显示列表中项目的实际内容,您需要使用 Binding 对象,在您的情况下,因为对象只是 string 绑定声明很简单:

<TextBlock Grid.Column="1" Foreground="Teal" Text="{Binding}"/>

相当于:

<TextBlock Grid.Column="1" Foreground="Teal" Text="{Binding Path=."/>

The documentation is a good start, read well noted WPF questions 在 SO 上也是一个好主意。