C# ListView没有';即使C中有,也不显示项目#
我的XAML中有一个列表视图:C# ListView没有';即使C中有,也不显示项目#,c#,wpf,listview,C#,Wpf,Listview,我的XAML中有一个列表视图: <ListView HorizontalAlignment="Stretch" x:Name="jobs" VerticalAlignment="Stretch" DockPanel.Dock="Top" Foreground="Black" SelectionMode="Single" SelectionChanged="selectionJobChanger" IsSynchronizedWithCurrentItem="False">
<ListView HorizontalAlignment="Stretch" x:Name="jobs" VerticalAlignment="Stretch" DockPanel.Dock="Top" Foreground="Black" SelectionMode="Single" SelectionChanged="selectionJobChanger" IsSynchronizedWithCurrentItem="False">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Background" Value="Yellow"/>
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridView.ColumnHeaderContainerStyle>
<Style BasedOn="{StaticResource {x:Type GridViewColumnHeader}}" TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="IsHitTestVisible" Value="False"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</GridView.ColumnHeaderContainerStyle>
<GridViewColumn Header="Commessa" Width="Auto" DisplayMemberBinding="{Binding PrjCode}"/>
<GridViewColumn Header="Creazione" Width="Auto" DisplayMemberBinding="{Binding ValidFrom}"/>
<GridViewColumn Header="Descrizione" Width="Auto" DisplayMemberBinding="{Binding PrjName}"/>
<GridViewColumn Header="Tipo" Width="Auto" DisplayMemberBinding="{Binding Prototype}"/>
<GridViewColumn Header="Project Engineer" Width="Auto" DisplayMemberBinding="{Binding ProjectEngineer}"/>
<GridViewColumn Header="Product Manager" Width="Auto" DisplayMemberBinding="{Binding ProductManager}"/>
</GridView>
</ListView.View>
</ListView>
在视图的代码隐藏中,我填充listview:
public void showJobsList(List<Job> listOfJobs)
{
jobs.Items.Refresh();
jobs.ItemsSource = listOfJobs;
jobs.Items.Refresh();
}
public void showJobsList(作业列表)
{
jobs.Items.Refresh();
jobs.ItemsSource=作业列表;
jobs.Items.Refresh();
}
使用来自查询的数据填充模型后,将在演示者的构造函数内调用此方法
问题是,在listView中,我看不到任何项目,但我确信它们存在,因为我可以在鼠标悬停时看到listView中的几行空行,然后我可以正确获得其他作用域的这些值,但我希望listView能够正常工作。为什么不使用MVVM?当您遵循MVVM模式时,不必调用
Refresh
。不一定@MightyBadaboom,在处理CollectionViewSource时,有时您必须调用CollectionViewSource.GetDefaultView(jobs.ItemsSource).Refresh()代码>此处不需要一个刷新或另一个刷新。所需要的只是jobs.ItemsSource=listOfJobs
,并且作业成员是属性,而不是属性fields@Clemens好样的!我忽略了Job
包含字段而不是属性的事实@克莱门斯:我在物业和工程方面改变了工作领域,非常感谢!
public void showJobsList(List<Job> listOfJobs)
{
jobs.Items.Refresh();
jobs.ItemsSource = listOfJobs;
jobs.Items.Refresh();
}