C# WPF DataTable в CollectionViewSource использовать это для ViewList
Я получил данные из базы данных, теперь я хочу поместить их в CollectionViewSource, а затем использовать их в качестве источника для ListView. Я хочу сделать это, чтобы я мог фильтровать ListView. Однако я не понимаю, как передать Datatable из 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.
1 ответ
Решение
Вам не нужен источник collectionview для привязки к datatable. Просто подключите источник данных напрямую к ItemsSource. Один из способов сделать это в коде позади...
DataView dv = new DataView();
dv.Table = dt;
dv.Filter = "CompanyName='abc'";
listView.ItemsSource = dv;