我有兩個使用表面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