我有一个包含多个步骤的向导控件。不可见的控件将从可视树中删除。我有一个 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/