테이블에서 데이터를 표시하는 데 문제가 있습니다. 테이블에는 하나의 필드 PositionName
이 있고 Entity Framework Code First를 빌드하십시오. 내가 MVVM 패턴 요소 인 DataGrid와 함께 WPF를 사용하고 있습니다. XAML에서 바인딩 코드 : PositionViewModel는 뷰 모델이며, 윈도우DataGrid에서 DB의 데이터를 표시하지 않는 이유
public AddPositionView()
{
InitializeComponent();
DataContext = new PositionViewModel();
}
뒤에
<DataGrid AutoGenerateColumns="False"
x:Name="PositionGrid" Margin="2 2 2 2"
ItemsSource="{Binding Source = PositionCollection}"
SelectedItem="{Binding ThePosition, Mode=TwoWay}"
SelectionMode="Single" Height="235">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding PositionName}"
Header="Назва професії"/>
</DataGrid.Columns>
</DataGrid>
코드는 다음 코드했습니다
public PositionViewModel()
{
_db = new SalDBContext();
ThePosition = new Position();
_poclog = new PositionLogic();
PositionCollection = new ObservableCollection<Position>(_poclog.Get());
}
db
이 테이블 ThePosition
작업에 대한 상황은 어디 - 모델 클래스이고 _poclog
기본적으로 양식 작업을위한 논리를 가진 클래스입니다. 논리 클래스는 데이터를 표시하기위한 다음 구현을 가지고 있습니다.
internal IEnumerable<Position> Get()
{
return _dbContext.Positions.ToList();
}
코드는 예외없이 작동하지만 양식을 표시하지만 그리드는 비어 있습니다. PositionCollection
디버깅하는 동안 테이블의 모든 요소가 있습니다. 모두 호출 창에 대한 코드로 이동하면 빈 창이 표시됩니다. 다음 코드 다음에 빈 창을 표시합니다.
private void PositionShow_Button_Click(object sender, RoutedEventArgs e)
{
AddPositionView posview = new AddPositionView();
posview.Show();
}
내가 AddPositionView
에 정지 점을 넣을 때 디버깅에 따라 모든 뷰 모델 클래스를 던져 가고 PositionColection
는 DB의 모든 요소를 가지고 있지만 그때는 AddPositionView
및 널 (null)이 될 posview
로 돌아갑니다. 왜 그렇게됩니까? DataGrid는 빈 테이블을 표시합니다. 도움 주셔서 감사합니다.
public PositionCollection { get; private set; }
또한 재산의 Binding
(아닌 Source
)에 이름 Path
설정해야합니다 : 당신이 그것에 결합 할 수 있도록하기위한
와우 감사합니다. 경로가 문제였습니다.) PositionCollection은 구현시 공개되었습니다. OnPropertyChange) 감사합니다. –