我有一个包含多个步骤的向导控件。从可视树中删除不可见的控件。我在一个页面上有一个ListBox
,它绑定到ObservableCollection<T>
。当项目在一个页面上添加或删除到ListBox
时,另一个页面上的ListBox
(具有相同的ItemsSource
),其他页面上的绑定不会更新。我希望这足以清楚地解释我的问题。
当页面再次添加到可视化树时,如何更新此绑定?
答案 0 :(得分:1)
我无法重现你的问题。我能够从可视化树中删除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);
}
}
答案 1 :(得分:0)
This听起来对你的问题非常熟悉......希望有所帮助。