【发布时间】:2014-03-23 21:39:11
【问题描述】:
这是 xaml 中的列表视图
<ListView x:Name="jobsListView_manageajob" HorizontalAlignment="Left" Height="456" Margin="21,163,0,0" VerticalAlignment="Top" Width="242" FontSize="15" BorderThickness="0" SelectionChanged="jobsListView_manageajob_SelectionChanged">
<ListView.Resources>
<Style TargetType="GridViewColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Left"></Setter>
</Style>
</ListView.Resources>
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn Header="Job #" DisplayMemberBinding="{Binding JobNumberListView1}" Width="50"/>
<GridViewColumn Header="Job Name" DisplayMemberBinding="{Binding JobNameListView1}"/>
</GridView>
</ListView.View>
</ListView>
我不太确定我是如何填充它的,我对 MVVM 很不熟悉,但这就是我使用的
private void populateJobsListView()
{
SqlConnection conn = new SqlConnection(sCONN);
conn.Open();
SqlCommand cmd = new SqlCommand("select Job_Number, Name from Jobs", conn);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string jobNumber = Convert.ToString(dr.GetValue(0));
string jobName = Convert.ToString(dr.GetValue(1));
jobsListView_manageajob.Items.Add(new { JobNameListView1 = jobName, JobNumberListView1 = jobNumber });
}
conn.Close();
}
现在我只需要根据搜索框内的文本过滤列表框。因此,当我键入术语时,listview 元素会缩小范围。我以为我可以根据 sql 语句重新填充列表视图,但这似乎效率低下。我想使用我的文本框的 textchanged 属性来做到这一点。
【问题讨论】: