我想知道是否可以得到這個幫助。基於WPF中的文本框文本過濾列表框
我正在使用包含2個表(dbo.Project和dbo.Materials)和collectionview的數據集來顯示數據到列表框中。
我需要通過使用兩個文本框在項目中使用的材質過濾數據集,並將項目名稱返回到列表框中。到目前爲止,我已經將它加載到了它的位置,我的列表框正確地填充了項目列表,但是文本框並未過濾。
任何建議如何解決它將不勝感激。
我到目前爲止的代碼是:
Imports System.Windows.Data
Imports System.Windows
Public Class SearchMe
Private mds As New MaterialsDataSet
Private pta As New MaterialsDataSetTableAdapters.ProjectTableAdapter
Private mta As New MaterialsDataSetTableAdapters.MaterialsTableAdapter
Private tam As New MaterialsDataSetTableAdapters.TableAdapterManager
Private view As CollectionView
Private Sub SearchMe_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
Me.tam.ProjectTableAdapter = pta
Me.tam.MaterialsTableAdapter = mta
Me.pta.Fill(Me.mds.Project)
Me.mta.Fill(Me.mds.Materials)
Me.DataContext = Me.mds.Project
Me.view = CollectionViewSource.GetDefaultView(Me.mds.Project)
End Sub
Private Sub btnSearch_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles btnSearch.Click
If Material2.Text.Length > 0 Then
Dim query = From p In mds.Project
Join m In mds.Materials On p.ProjectID Equals m.ProjectID
Where m.Material = Me.Material2.Text.ToString
Select p
Else
Dim query = From p In mds.Project
Join m In mds.Materials On p.ProjectID Equals m.ProjectID
Where m.Material = Me.Material1.Text
Select p.ProjectName
Me.DataContext = query
End If
End Sub
Private Sub btnReset_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles btnReset.Click
Me.DataContext = Nothing
End Sub
Private Sub Material1_TextChanged(sender As Object, e As System.Windows.Controls.TextChangedEventArgs) Handles Material1.TextChanged
End Sub
Private Sub Material2_TextChanged(sender As Object, e As System.Windows.Controls.TextChangedEventArgs) Handles Material2.TextChanged
End Sub
End Class
而XAML:
<Window x:Class="SearchMe"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SearchMe" Height="500" Width="750" WindowStartupLocation="CenterScreen" ShowInTaskbar="False" ShowActivated="False" ResizeMode="NoResize">
<Grid>
<ListBox HorizontalAlignment="Right" Margin="0,45,46,60" Name="MyLists" Width="346" BorderThickness="3" BorderBrush="#FF860909"
IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding}"
DisplayMemberPath="ProjectName"/>
<Button Content="Search" Height="23" HorizontalAlignment="Left" Margin="403,417,0,0" Name="btnSearch" VerticalAlignment="Top" Width="75" />
<Button Content="Reset" Height="23" HorizontalAlignment="Left" Margin="556,417,0,0" Name="btnReset" VerticalAlignment="Top" Width="75" />
<TextBox Height="30" HorizontalAlignment="Left" Margin="29,87,0,0" Name="Material1" VerticalAlignment="Top" Width="269" />
<TextBox Height="30" HorizontalAlignment="Left" Margin="29,192,0,0" Name="Material2" VerticalAlignment="Top" Width="269" />
</Grid>
任何和所有輸入讚賞。