C# WPF DataTable 到 CollectionViewSource 中,将其用于 ViewList
C# WPF DataTable into a CollectionViewSource use that for a ViewList
我已经从数据库中获取了数据,现在我想将其放入 CollectionViewSource 中,然后将其用作 ListView 的源。我想这样做以便过滤 ListView。但是我不明白如何将数据表从 c# 传递到 XAML CollectionViewSource?
<Window.Resources>
<ResourceDictionary >
<CollectionViewSource x:Key="NamesOfCompany"/>
</ResourceDictionary>
</Window.Resources>
<ListView x:Name="listView" ...
ItemsSource="{Binding Source={StaticResource NamesOfCompany}}" >
<ListView.View>
<GridView>
<GridViewColumn Header="CompanyName"
DisplayMemberBinding="{Binding CompanyName}" />
</GridView>
</ListView.View>
</ListView>
<Grid Margin="2,441.5,-2,0" Grid.Row="1" >
<TextBox x:Name="txt_search" Height="22" TextWrapping="Wrap" Text="{Binding TextSearch,UpdateSourceTrigger=PropertyChanged}" Width="234" Margin="0,0,451,8" TextChanged="txt_search_TextChanged" HorizontalAlignment="Right" VerticalAlignment="Bottom" VerticalContentAlignment="Center"/>
</Grid>
我数据库中的所有数据都保存在
private DataTable dt;
我不确定您是如何将 dt 中的所有数据分配到 CollectionViewSource 中的。
您不需要 collectionviewsource 来绑定到数据表。只需将数据表直接连接到 ItemsSource。一种方法是在后面的代码中...
DataView dv = new DataView();
dv.Table = dt;
dv.Filter = "CompanyName='abc'";
listView.ItemsSource = dv;
我已经从数据库中获取了数据,现在我想将其放入 CollectionViewSource 中,然后将其用作 ListView 的源。我想这样做以便过滤 ListView。但是我不明白如何将数据表从 c# 传递到 XAML CollectionViewSource?
<Window.Resources>
<ResourceDictionary >
<CollectionViewSource x:Key="NamesOfCompany"/>
</ResourceDictionary>
</Window.Resources>
<ListView x:Name="listView" ...
ItemsSource="{Binding Source={StaticResource NamesOfCompany}}" >
<ListView.View>
<GridView>
<GridViewColumn Header="CompanyName"
DisplayMemberBinding="{Binding CompanyName}" />
</GridView>
</ListView.View>
</ListView>
<Grid Margin="2,441.5,-2,0" Grid.Row="1" >
<TextBox x:Name="txt_search" Height="22" TextWrapping="Wrap" Text="{Binding TextSearch,UpdateSourceTrigger=PropertyChanged}" Width="234" Margin="0,0,451,8" TextChanged="txt_search_TextChanged" HorizontalAlignment="Right" VerticalAlignment="Bottom" VerticalContentAlignment="Center"/>
</Grid>
我数据库中的所有数据都保存在
private DataTable dt;
我不确定您是如何将 dt 中的所有数据分配到 CollectionViewSource 中的。
您不需要 collectionviewsource 来绑定到数据表。只需将数据表直接连接到 ItemsSource。一种方法是在后面的代码中...
DataView dv = new DataView();
dv.Table = dt;
dv.Filter = "CompanyName='abc'";
listView.ItemsSource = dv;