C# 为什么DataGrid不显示数据库中的数据
我在显示表中的数据时遇到问题。该表有一个字段C# 为什么DataGrid不显示数据库中的数据,c#,wpf,entity-framework,mvvm,datagrid,C#,Wpf,Entity Framework,Mvvm,Datagrid,我在显示表中的数据时遇到问题。该表有一个字段PositionName,首先是内置实体框架代码。为了显示,我将WPF与MVVM模式元素DataGrid一起使用。xaml中绑定的代码: <DataGrid AutoGenerateColumns="False" x:Name="PositionGrid" Margin="2 2 2 2" ItemsSource="{Binding Source = PositionCollection}"
PositionName
,首先是内置实体框架代码。为了显示,我将WPF与MVVM模式元素DataGrid一起使用。xaml中绑定的代码:
<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>
其中PositionViewModel是ViewModel,具有以下代码:
public PositionViewModel()
{
_db = new SalDBContext();
ThePosition = new Position();
_poclog = new PositionLogic();
PositionCollection = new ObservableCollection<Position>(_poclog.Get());
}
代码可以正常工作,它显示表单,但网格是空的。调试时,PositionCollection
包含表中的所有元素。当它全部转到调用窗口的代码时,它会显示空窗口。在下一个代码之后,它显示空窗口
private void PositionShow_Button_Click(object sender, RoutedEventArgs e)
{
AddPositionView posview = new AddPositionView();
posview.Show();
}
根据调试,当我将停止点放在AddPositionView
上时,它将抛出所有视图模型类,positioncollection
具有数据库中的所有元素,但随后它将返回到AddPositionView
,并且posview
变为null。为什么会这样?和DataGrid显示空表。
感谢您的帮助。
PositionCollection
必须是公共属性,您才能绑定到它:
public PositionCollection { get; private set; }
您还应该将绑定的路径
(而不是源
)设置为属性的名称:
ItemsSource="{Binding Path=PositionCollection}"
哇,谢谢,问题出在路径上)PositionCollection是公共的,实现在PropertyChange上)谢谢)
public PositionCollection { get; private set; }
ItemsSource="{Binding Path=PositionCollection}"