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 の多くの回避策が示されましたが、現時点では実際にぐるぐる回っています。

これを機能させるために誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

1

List<string>で置き換えますObservableCollection<string>

このジェネリックは CollectionChangedEvent を発生させるため、バインドされたコントロールは更新が必要であることを認識します。

于 2011-12-21T21:12:18.347 に答える