我的ComboBox
绑定到表单上的DependencyProperty
。我可以通过Button
点击向此属性添加项目,然后将其添加到ComboBox
。但是,只要我下拉ComboBox
绑定中断。我仍然可以向该属性添加项目,但我的ComboBox
永远不会更新以显示它们。
例如
Button
三次ComboBox
- 它将有三个项目Button
三次ComboBox
- 它仍然只有三个项目再次启动应用程序并:
Button
六次ComboBox
- 它将有六个项目<Grid x:Name="LayoutRoot"
Background="White">
<ComboBox Name="combTest"
ItemsSource="{Binding Users}"
Width="50"
Height="50"
HorizontalAlignment="Left" />
<Button Click="ButtonBase_OnClick"
Width="50"
Height="50"
HorizontalAlignment="Right" />
</Grid>
public MainPage()
{
InitializeComponent();
this.DataContext = this;
}
public static readonly DependencyProperty UsersProperty = DependencyProperty.Register(
"Users", typeof (List<string>), typeof (MainPage), new PropertyMetadata(new List<string>()));
public List<string> Users
{
get { return (List<string>) GetValue(UsersProperty); }
set { SetValue(UsersProperty, value); }
}
private int i = 0;
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
Users.Add("User " + i++);
}
答案 0 :(得分:6)
使用 ObservableCollection 代替列表
ObservableCollection 会引发添加和删除集合中项目的属性更改,但列表不会。