我正在开发wpf应用程序,其中我有listview控件。我对wpf很新。但设法添加一些样式并在Listview中显示水平网格线,如下所示,
<DataTemplate x:Key="IDBorderedCellTemplate">
<Border BorderBrush="Black" Margin="0,5,0,1"
BorderThickness="0,0,0,1" >
<TextBlock Foreground="MediumBlue" FontFamily="Calibri" Margin="3,0,0,2" Text=""
/>
</Border>
</DataTemplate>
<ListView.View>
<GridView ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}">
<!-- Product ID -->
<GridViewColumn
CellTemplate="{StaticResource IDBorderedCellTemplate}">
现在我的问题是我可以在加载窗口时在列表视图中显示项目,这只显示网格线。根据我的要求,我有一个浏览文件的浏览按钮,这些浏览的文件必须显示在列表视图中。
在加载事件中,我正在添加以下代码行,
try
{
listviewitem = new ListViewItem();
//displays only the filename in the listview
listviewitem.Content = System.IO.Path.GetFileName(_name);
_listFiles.Items.Add(listviewitem);
}
catch (Exception)
{
}
在xaml中添加gridview设置后,此数据未显示在列表视图中。现在它只显示网格线。 任何建议/帮助都很明显。
此致 拉维
答案 0 :(得分:0)
选择listview的ItemsSource作为ObservableCollection或BindingList 用于动态/频繁更改数据而不是使用listviewItem。
XAML
<ListView Name="listView1" ItemsSource="{Binding FileStore}">
<ListView.View>
<GridView>
<GridViewColumn Width="120" Header="Files" DisplayMemberBinding="{Binding}" />
</GridView>
</ListView.View>
</ListView>
C#
public partial class MainWindow : Window
{
public ObservableCollection<string> fileList= new ObservableCollection<string>();
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
// Add files to fileList (ObservableCollection)
}
public ObservableCollection<string> FileStore
{
get { return fileList; }
}
}
可以在任何地方向ObservableCollection添加项目,例如浏览按钮单击或加载。