我是WPF和MVVM的新手,我正在爲如何設計我的應用程序而苦苦掙扎(因此這裏有很多問題),並且正在進行重構。我有一個SQL後端,並使用LINQtoSQL,因此LINQTOSQL生成的類將成爲我的模型。我還沒有看到如何讓模型類遠離視圖的一個很好的綜合示例 - 在我現在看到的示例中,視圖綁定到ModelClass.Something,而不是具有引用ModelClass.Something的ViewModel屬性。我是否認爲這是錯誤的(如果該字段在數據庫中發生變化,視圖就會中斷)?MVVM設計模式問題
我現在正在努力的是下拉列表。例如:我有一個名爲MessageType的查找表,帶有一個id和文本字段以及一個存儲庫方法來獲取它們。所以在我看來,我想避免將DisplayMemberPath和SelectedValue路徑綁定到我的Model的MessageType類的字段,所以我需要創建一個新類並在ViewModel中公開該類的屬性?就像這樣:
public class MessageTypeViewModel : ViewModelBase
{
public MessageTypeViewModel(MessageType t)
{
MessageTypeText = t.messageTypeText;
MessageTypeId = t.messageTypeId;
}
public string MessageTypeText { get; private set; }//bind DisplayMember and SelectedValue to these properties
public int MessageTypeId { get; private set; }
}
填充像這樣:
get
{
if (textMessageSelectionOptions == null)
{
var list = repository.GetMessageTypes().Select(x=>new MessageTypeViewModel(x)).ToList();
textMessageSelectionOptions =new ReadOnlyCollection<MessageTypeViewModel>(list);
}
return textMessageSelectionOptions;
}
而且我對mission.MessageType因爲我有一個外鍵消息類型讓我怎麼綁定組合框的SelectedItem一個任務對象現在有這個新班?我真的很努力地獲得與任務對象,其子女及其父母的模式,我找不到任何人們正在使用MVVM進行CRUD操作的全面示例。我是通過頂部還是失去了一些東西?
除非您的視圖模型實際上爲類添加了行爲(例如'INotifyPropertyChanged'實現或特定於視圖的命令/屬性),那麼我不會將它包裝在視圖模型中 - 它只會導致不必要的維護 – 2012-04-20 12:44:45