如何从 WPF ListView 中读取数据?
这是我的代码。
<ListView x:Name="LVR" AllowDrop="True" PreviewDrop="LVR_PreviewDrop" RenderTransformOrigin="0.505,0.506" Margin="0,0,0,0" Grid.Row="1" Grid.ColumnSpan="3" MouseEnter="LVR_MouseEnter" >
<ListView.View>
<GridView >
<GridViewColumn Header="Status" Width="40">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Image Source="index.png" Width="26"></Image>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="File Name">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding TBtxt}" FontWeight="Bold" Foreground="Blue" Cursor="Hand" Height="30" TextAlignment="Left" HorizontalAlignment="Center"></TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
我正在像这样将项目插入 ListView 。
void Insert()
{
WinForms.OpenFileDialog ofd = new WinForms.OpenFileDialog();
ofd.Multiselect = true;
ofd.Title = "Select .TXT File";
ofd.FileName = "";
ofd.Filter = "TXT | *.txt";
if (ofd.ShowDialog() == WinForms.DialogResult.OK)
{
foreach (var filename in ofd.FileNames)
{
if (System.IO.Path.GetExtension(filename).ToUpperInvariant() == ".txt")
{
LVR.Items.Add(new StackItems { TBtxt = filename });
}
}
}
}
class StackItems
{
public string TBtxt { get; set; }
public Image imgg { get; set; }
}
一旦我完成添加文件,我的 ListView 将如下所示。
|状态|文件名|
|[图片]|测试.txt |
|[图片]| test1.txt|
(抱歉。我没有足够的声誉来发布图片)
现在如何从第二列读取“文件名”?
我是 WPF 的新手。 提前致谢。
最佳答案
简而言之,您应该将一组项目(每行一个)数据绑定(bind)到 ListView.ItemsSource
属性:
<ListView ItemsSource="{Binding SomeCollection}">
<ListView.View>
<!-- Define your view here -->
</ListView.View>
</ListView>
如果这样做,那么访问项目就这么简单(使用 Linq):
var firstItem = SomeCollection.First();
对这种情况的改进是将与数据绑定(bind)集合上的对象相同类型的另一个属性数据绑定(bind)到 ListView.SelectedItem
属性:
<ListView ItemsSource="{Binding SomeCollection}" SelectedItem="{Binding CurrentItem}">
<ListView.View>
<!-- Define your view here -->
</ListView.View>
</ListView>
这样做将使您能够像这样从 ListView
访问当前所选项目的属性:
int someValue = CurrentItem.SomeProperty;
请引用ListView
Class MSDN 上的页面以获取更多帮助。
关于c# - 从 WPF ListView 读取数据。 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28719256/