EF和WPF Datagrid绑定问题

时间:2011-11-02 18:00:05

标签: entity-framework wpfdatagrid

是否可以动态更改EF连接的服务器名称?

我在5台服务器上拥有相同的数据库(不同的环境,Dev,Test,UAT ......),并希望编写一个仪表板应用程序,通过从DDL中选择环境,依次从每个服务器中提取相同的信息

我正在使用Entity Framework 4 / WPF / C#。新的ObservableCollection(context.EntitySet)绑定到XAML中的WPF DataGrid。这很好用。 xaml网格绑定如下

<grid:RadGridView ItemsSource="{Binding EPolicies}" IsReadOnly="True" RowDetailsVisibilityMode="VisibleWhenSelected" RowIndicatorVisibility="Collapsed" AutoGenerateColumns="False">

在视图模型中我调用以下代码

             entities = new EpolicyEntities(environmentConnStr);
            customTexts = new ObservableCollection<C_CustomTextType>(from i in entities.C_CustomTextType select i);
            languages = new ObservableCollection<C_Language>(from i in entities.C_Language select i);
            userTypes = new ObservableCollection<C_UserType>(from i in entities.C_UserType select i);
            EPolicies = new ObservableCollection<EPolicy>(from e in entities.EPolicies select e);

entities是表示我连接到

的数据库的ObjectContext

第一次它工作正常,但第二次甚至thoguh我可以看到EPolicies对象中的新值,网格没有被刷新,因为我想要 EPolicies是如下定义的属性         public ObservableCollection EPolicies         {             得到{return ePolicies; }             组             {                 ePolicies = value;                 OnPropertyChanged(()=&gt; EPolicies);             }         } 有人可以帮帮我吗? 感谢

有人这样做过吗?

1 个答案:

答案 0 :(得分:2)

好的,我发现了。

问题是该属性

public ObservableCollection EPolicies {                     

  get { return ePolicies; } 

  set {
      ePolicies = value; OnPropertyChanged(() => EPolicies); 
  }
}

正在调用OnpropertyChanged,而不是Base.OnPropertyChanged。 不确定为什么它的工作方式可能是事件没有被冒泡。 有人有答案吗?