표면 SDK를 사용하여 개발 된 두 개의 WPF 창이 있는데, 하나는 데이터 입력 양식이고 두 번째는 목록 상자에 데이터를 표시합니다. 목록 상자는 데이터를 완벽하게 표시하지만 데이터 입력 양식을 사용하여 새 레코드를 추가하면 창을 다시 열 때까지 목록 상자가 업데이트되지 않습니다. 바인딩 또는 뭔가를 통해 목록 상자를 자동으로 업데이트하는 방법이 있습니까? 나는이 목록 상자를 채우려면 비주얼 C# 2008 코드를 사용하고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>
: 내 데이터베이스의 유일한 테이블이 메인 화면이라고
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
목록 상자를 데이터베이스에 연결하는 것에 관한 질문; 동일한 데이터 클래스에 데이터베이스와 상호 작용하고 데이터 클래스의 속성을 업데이트하여 (OnPropertyChanged가 실행되는) 만들기/업데이트/삭제/목록 메서드를 가질 수 있습니다. –