如何在 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 上也是一个好主意。
我将此代码作为我的列表视图:
<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 上也是一个好主意。