可观察集合绑定错误
本文关键字:错误 绑定 集合 观察 | 更新日期: 2023-09-27 18:11:58
我试图创建一个简单的程序,将ObservableCollection连接到ListBox。我写:
public ObservableCollection<int> Values { get; set; }
和
public MainWindow()
{
InitializeComponent();
Values = new ObservableCollection<int>();
Values.Add(1);
DataContext = this;
}
然后我创建了按钮并写入:
public Button1_Clicke(object sender, RoutedEventArgs e)
{
Values.Add(2);
}
XMAL:
<ListBox x:Name="list" ItemsSource="{Binding Path=Values}"/>
当窗口打开时,我可以看到'1'的值。但是当我点击按钮时,列表框没有更新项目。怎么了?
你可以试试:
<ListBox x:Name="list" ItemsSource="{Binding Path=Values}"/>
编辑:我做了一个简单的示例如下:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel>
<ListBox x:Name="list" ItemsSource="{Binding Path=Values}"/>
<Button Click="Button_Click" Content="Test"></Button>
</StackPanel>
</Window>
后台代码(Window1.xaml.cs)
using System.Collections.ObjectModel;
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public ObservableCollection<int> Values { get; set; }
public Window1()
{
InitializeComponent();
Values = new ObservableCollection<int>();
Values.Add(1);
DataContext = this;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Values.Add(2);
}
}
按预期工作。所以根据你下面的评论,你为什么不试着删除所有的转换器,以确保它正确与否。