我有两个使用表面SDK开发的WPF窗口,一个是数据输入窗体,第二个显示列表框中的数据。该列表框完美地显示数据,但是当我使用数据输入表单添加新记录时,直到重新打开窗口,列表框才会更新。有没有办法通过绑定或其他方式自动更新列表框?WPF:自动更新列表框C#
这是列表框代码:
<s:SurfaceListBox Height="673" Margin="0,26,0,31" Name="surfaceListBox1" ItemsSource="{Binding Path={}}" Width="490">
<s:SurfaceListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Width="80" FontSize="8" Content="{Binding Path=item1}"></Label>
<Label Width="80" FontSize="8" Content="{Binding Path=item2}"></Label>
<Label Width="210" FontSize="8" Content="{Binding Path=item3}"></Label>
<Label Width="80" FontSize="8" Content="{Binding Path=item4}"></Label>
<Label Width="60" FontSize="8" Content="{Binding Path=item5, Converter={StaticResource booleanconverter}}"></Label>
</StackPanel>
</DataTemplate>
</s:SurfaceListBox.ItemTemplate>
</s:SurfaceListBox>
我使用Visual C#2008和代码填写列表框是:
private SHIPS_LOGDataSet ShipData = new SHIPS_LOGDataSet();
private SHIPS_LOGDataSetTableAdapters.MAINTableAdapter taMain = new SHIPS_LOGDataSetTableAdapters.MAINTableAdapter();
private SHIPS_LOGDataSetTableAdapters.TableAdapterManager taManager = new ShipsLogSurface.SHIPS_LOGDataSetTableAdapters.TableAdapterManager();
private void SurfaceWindow_Loaded(object sender, RoutedEventArgs e)
{
this.taMain.Fill(this.ShipData.MAIN);
this.DataContext = from MAIN in this.ShipData.MAIN orderby MAIN.MESSAGE_ID descending select MAIN;
}
我的数据库中唯一的表被称为主。
我猜我可能不得不使用集合视图或类似的,但不知道如何实现。任何想法将不胜感激。谢谢
谢谢,我还是新来C#和WPF,所以我会创建一个新类实现INotifyPropertyChanged?我将如何使用它将列表框连接到数据库? – Ashley 2010-06-06 08:22:58
关于将列表框连接到数据库的问题; 您可以在相同的数据类中使用create/update/delete/list方法,这些方法将与您的数据库交互并更新数据类中的属性(导致OnPropertyChanged触发)。 – 2010-06-06 08:45:07