У меня есть два окна WPF, разработанные с использованием поверхностного SDK, который является формой ввода данных, а второй передает данные в список. Список прекрасно отображает данные, но когда я добавляю новую запись с использованием формы ввода данных, список не обновляется, пока я не открою окно. Есть ли способ автоматически обновлять список через привязку или что-то еще?WPF: автоматически обновляется список C#
Это код ListBox:
<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 и код для заполнения ListBox является:
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;
}
Единственная таблица в моей базе данных называется MAIN.
Я предполагаю, что мне, возможно, придется использовать представление коллекции или подобное, но не знаю, как это реализовать. Любые идеи будут высоко оценены. Спасибо
Спасибо, я все еще новичок в C# и WPF, так что бы создать новый класс, который реализует INotifyPropertyChanged? Как я могу использовать это для подключения списка к базе данных? – Ashley
Что касается вашего вопроса о подключении списка к базе данных; Вы можете иметь в том же классе данных свои методы create/update/delete/list, которые будут взаимодействовать с вашей базой данных и обновлять свойства в вашем классе данных (в результате чего OnPropertyChanged срабатывает). –