data-binding - Silverlight 列表框 : Binding does not get updated

标签 data-binding silverlight-4.0 observablecollection

我有一个包含多个步骤的向导控件。不可见的控件将从可视树中删除。我有一个 ListBox在一页上,绑定(bind)到 ObservableCollection<T> .当项目被添加或删除到 ListBox在一页上,ListBox在另一个页面上(具有相同的 ItemsSource ),另一个页面上的绑定(bind)不会更新。我希望这足以清楚地解释我的问题。

当页面再次添加到可视化树时,如何更新此绑定(bind)?

最佳答案

我无法重现您的问题。我能够从可视树中删除一个 ListBox,将对象添加到 ObservableCollection,当我将它添加到可视树时,项目实际上会更新。

尝试通过将可见性设置为 Collapsed 而不是从 Visual Tree 中删除来解决您的问题。

public partial class MainPage : UserControl
{
    public MainPage()
    {
        InitializeComponent();

        this.listBox1.ItemsSource = o;
        this.listBox2.ItemsSource = o;
    }

    ObservableCollection<int> o = new ObservableCollection<int>();
    private void buttonList1_Click(object sender, RoutedEventArgs e)
    {
        if (this.listBox1.Parent == null)
            this.LayoutRoot.Children.Add(this.listBox1);
        else
            this.LayoutRoot.Children.Remove(this.listBox1);

        //this.listBox1.Visibility = this.listBox1.Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
    }

    private void buttonList2_Click(object sender, RoutedEventArgs e)
    {
        if (this.listBox2.Parent == null)
            this.LayoutRoot.Children.Add(this.listBox2);
        else
            this.LayoutRoot.Children.Remove(this.listBox2);

        //this.listBox2.Visibility = this.listBox2.Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
    }

    private void ButtonAddMore_Click(object sender, RoutedEventArgs e)
    {
        o.Add(o.Count);
    }

}

关于data-binding - Silverlight 列表框 : Binding does not get updated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6609709/

相关文章:

.net - 在 xaml 中使用数据模板时如何对不同的项目设置不同的样式?

C# XML 解析 - 跳过某些 'items' 中的空标记

wpf - 如何对 ObservableCollection 进行排序

wpf按钮点击事件

asp.net - 将代码隐藏中的公共(public)字符串获取到ListView的LayoutTemplate中

WPF 绑定(bind) Width 到 Parent.Width*0.3

.net - 在 ViewModel 中获取 WPF ListView.SelectedItems

silverlight - 从 Silverlight 4(测试版)流式传输网络摄像头

silverlight - 禁用组合框中的右键单击 "Silverlight"弹出窗口

c# - 是否需要在 CollectionChanged 事件中检查 NotifyCollectionChangedAction?