2011-12-20 46 views
0

全部傍晚, 我有一个使用silverlight5的基本自动完成框。 目标是能够通过上面的复选框搜索人员列表并从列表中删除某些人员。 在复选框事件上,该列表被修改,但这不会反映在自动完成框中。自动完成列表更新?

的.xaml:

<StackPanel Orientation="Vertical" x:Name="LayoutRoot" Background="Transparent"> 
    <sdk:Label Content="Filter By:" FontSize="12" Name="label1" Margin="10,10,10,5" /> 
    <CheckBox Content="Students" Height="16" Name="checkBox1" Margin="10,5,10,0" Checked="checkBox1_Checked" Unchecked="checkBox1_Checked"/> 
    <CheckBox Content="Staff" Height="16" Name="checkBox2" Margin="10,5,10,0" Checked="checkBox2_Checked" Unchecked="checkBox2_Checked"/> 
    <CheckBox Content="Guest" Height="16" Name="checkBox3" Margin="10,5,10,10" Checked="checkBox3_Checked" Unchecked="checkBox3_Checked"/> 
    <sdk:AutoCompleteBox x:Name="peoplelist"/> 
</StackPanel> 

后面的代码:

public CustomerFilterControl() 
    { 
     InitializeComponent(); 
     //_viewModel.Initialize(); initial loading of context data, populate dropdowns etc 
     people.Add("Student 1"); 
     //.....................add more 
     peoplelist.Itemssource = people; 
    } 

复选框方法:

private void checklist() 
    { 
     if (checkBox1.IsChecked.Value) 
     { 
      people.Clear(); 
      people.Add("Guest 1"); 
      //.................... add more 
      peoplelist.DataContext = people; 
    } 

地段搜索的指出我很多变通的早期版本的Sliverlight,但在这一点上,我实际上正在围绕着圈子。

任何人都可以指出我正确的方向来获得这个功能?

+0

你能告诉我们人民的课吗?它是否实现INotifyCollectionChanged? – 2011-12-20 17:51:53

+0

人们只是一个简单的列表: 列表 people = new List (); 我是否应该将实现人员集合作为一个类来实现? 祝你好运 – Jvr 2011-12-21 09:06:05

+1

替换列表作者:ObservableCollection 2011-12-21 09:41:55

回答

1

通过ObservableCollection<string>

这个通用提高了CollectionChangedEvent所以绑定控件知道他们需要更新替换List<string>