【发布时间】:2012-12-27 09:38:43
【问题描述】:
我是 WPF 新手,我想用我的 ComboBox 控件过滤一些带有 CollectionView 的数据。
到目前为止我做了什么:
<CollectionViewSource x:Key="TeleView" Source="{StaticResource TeleData}" Filter="Filter" >
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="contact_name" Direction="Ascending" />
</CollectionViewSource.SortDescriptions>
<CollectionViewSource.GroupDescriptions>
<dat:PropertyGroupDescription PropertyName="contact_grname" />
</CollectionViewSource.GroupDescriptions>
CS:
private int count = 0;
void Filter(object sender, FilterEventArgs e)
{
if (value == "" || value == null)
{
e.Accepted = true;
}
else
{
System.Xml.XmlElement ele = e.Item as System.Xml.XmlElement;
string name = ele.SelectNodes("/response/contacts/contact/contact_grname")[count].InnerText;
count += 1;
//MessageBox.Show(name);
if (name == "group1") e.Accepted = true;
else e.Accepted = false;
}
}
此代码成功过滤了我的contact_grname 元素中带有group1 文本的所有元素。
但是如何绑定到我的ComboBox,其中包含所有contact_grnames(XML 绑定)?!
private void cmbGroup_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
value = cmbGroup.SelectedValue.ToString();
lblGroupName.Content = "Groupname: " + value;
CollectionViewSource cvs = FindResource("TeleView") as CollectionViewSource;
}
【问题讨论】:
-
嘿,你想用另一个组合框中所选组中的项目填充另一个组合框吗?