2013-10-07 3 views
0

Я начинаю с WPF & MVVM.ADO.NET Entity Framework в WPF MVVM?

У меня есть представление с datagrid. Я установил datacontext, чтобы моя модель просмотра & установила привязку к моему IBindingList. Моя модель состоит из ADM.NET edmx.

Я запрашиваю таблицу EF из ViewModel с помощью Linq. Кажется, что запрос должен быть в методе, чтобы избежать ошибки. Инициализатор поля не может ссылаться на нестатические поля, метод или свойство «Entity_MVVM.ViewModels». и т.д.'

Итак, вот мой код, который запрашивает мою таблицу EF в IBindingList. Как мне затем вызвать мой метод GetData для отображения результатов запроса в моем представлении?

namespace Entity_MVVM.ViewModels 

public class ContractViewModel : INotifyPropertyChanged 
    { 

    public void GetData() 
    { 
     LDBEntities db = new LDBEntities(); 

     IBindingList contracts = ((from c in db.tbContracts 
            select new { c.Contract_ID, c.Contract_name, c.Country } 
    ) as IListSource).GetList() as IBindingList; 

    } 

    public event PropertyChangedEventHandler PropertyChanged; 
} 
} 

Спасибо всем

+0

Когда вы хотите использовать свой метод? – Sasha

+1

И вы должны помещать свой контекст в используемый блок. – Sasha

ответ

2

Instance Vairable не может быть использован для инициализации другого varible, поскольку компилятор не может выполнить в том же порядке.

Попробуйте переместить LDBEntities db = new LDBEntities(), чтобы просмотреть конструктор модели.

+0

Thankyou, теперь я вызываю свой метод .GetData из конструктора ViewModel. – Hardgraf

1

Как Саша спрашивает: это зависит от того, когда вы хотите, чтобы данные были показать. Если вы хотите, когда вид показывает, просто поместите его в конструкторе:

public ContractViewModel 
{ 
    GetData(); 
} 
+0

Да, спасибо. Глупая ошибка, новичок, но каждый день учиться! – Hardgraf

Смежные вопросы