【发布时间】:2014-12-17 21:13:59
【问题描述】:
就上下文而言,我正在构建一个通用的 Windows 应用商店应用程序。
我刚刚开始学习 C# 和 MVVM 模式,我需要帮助来正确实现绑定。
我已遵循本教程(绑定)并了解它是如何工作的,但是在此示例中,执行绑定的代码存储在视图类中。
public partial class MainPage : Page
{
public ObservableCollection<TermTest> MyTerms = new ObservableCollection<TermTest>();
public MainPage()
{
this.InitializeComponent();
MyTerms.Add(new TermTest("BNC", "Wire"));
MyTerms.Add(new TermTest("Lens", "Collects light"));
this.DataContext = new CollectionViewSource { Source = MyTerms };
}
据我了解,这是糟糕的设计。在我的实现中,我将使用我的模型来检索将被放入可观察集合的数据。然后在我的 ViewModel 中,我希望将 ObservableCollection 绑定到正在使用它的 XAML 控件,而不是将 Collection 发送到 View,然后调用 View 中的方法来填充 XAML 控件。
这是正确的做法吗?如果是,应该怎么做,因为我不知道如何将 XAML 控件公开给我的 ViewModel(我认为我不应该这样做,对吧?)。
我知道我可以公开控件来创建 Mainpage 的新实例,但这没用,因为我需要绑定到当前实例。
Mainpage Test = new MainPage();
有人可以帮我解释一下吗?我读了很多书,要么找不到答案,要么不明白!
谢谢,詹姆斯
【问题讨论】: