C# 如何从wpf中的其他窗口更新绑定?
我有一个可观察的集合绑定到组合框 下面是XamlC# 如何从wpf中的其他窗口更新绑定?,c#,wpf,data-binding,C#,Wpf,Data Binding,我有一个可观察的集合绑定到组合框 下面是Xaml <ComboBox Name="Combo" HorizontalAlignment="Left" VerticalAlignment="Top" Width="120" ItemsSource="{Binding Path=coll}"/> <Button Content="Button" Click="Button_Click_1" HorizontalAlignment="Left" VerticalAlignm
<ComboBox Name="Combo" HorizontalAlignment="Left" VerticalAlignment="Top" Width="120"
ItemsSource="{Binding Path=coll}"/>
<Button Content="Button" Click="Button_Click_1" HorizontalAlignment="Left" VerticalAlignment="Top"
Width="75" RenderTransformOrigin="0.649,3.417" Margin="10,36,0,0"/>
在主窗口中,必须将可观察集合添加到其他构造函数中,否则可观察集合没有数据
public MainWindow(string data)
: this()
{
coll = new ObservableCollection<string>();
coll.Add("ABC");
coll.Add("AAA");
coll.Add("BBB");
coll.Add("KKK");
Combo.SelectedItem = coll[0];
DataContext = this;
coll.Add(data);
}
public主窗口(字符串数据)
:此()
{
coll=新的可观察集合();
coll.Add(“ABC”);
列加(“AAA”);
coll.添加(“BBB”);
coll.添加(“KKK”);
Combo.SelectedItem=coll[0];
DataContext=this;
coll.Add(数据);
}
如果创建主窗口的另一个实例,则此操作有效 您到底想做什么,还不清楚。我正在从Window1将值带入集合,关闭Window1后,组合框不会用我们从Window1输入的值更新。是的,肯定会发生,因为您创建了一个新的主窗口,所以以前的窗口不会被更新。我将添加一个代码。好的,谢谢Harshana Narangoda你能建议我如何处理这种情况吗。我了解到主窗口实例已被更改。单击第二个窗口中的按钮后,我可以知道第一个窗口有两个实例吗?
<TextBox Name="txtBox" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap"
VerticalAlignment="Top" Width="120"/>
<Button Content="Button" Click="Button_Click_1" HorizontalAlignment="Left"
VerticalAlignment="Top" Width="75" Margin="10,28,0,0"/>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
MainWindow obj = new MainWindow(txtBox.Text);
this.Close();
}
}
public MainWindow(string data)
: this()
{
coll = new ObservableCollection<string>();
coll.Add("ABC");
coll.Add("AAA");
coll.Add("BBB");
coll.Add("KKK");
Combo.SelectedItem = coll[0];
DataContext = this;
coll.Add(data);
}