Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么DataGrid不显示数据库中的数据_C#_Wpf_Entity Framework_Mvvm_Datagrid - Fatal编程技术网

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}"