从ViewModel正确设计将数据绑定到视图中的XAML控件的设计

詹姆士

就上下文而言,我正在构建通用的Windows Store应用程序。

我刚刚开始学习C#和MVVM模式,我需要正确实现绑定的帮助。

我已经阅读了本教程(绑定)并了解了它的工作原理,但是在此示例中,进行绑定的代码存储在View类中。

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

据我了解,这是糟糕的设计。在我的实现中,我将使用模型来检索将放入Observable集合中的数据。然后在我的ViewModel中,我想将ObservableCollection绑定到正在使用它的XAML控件,而不是将Collection发送到View,然后在View中调用一个方法来填充XAML控件。

那是这样做的正确方法吗,如果是这样,应该怎么做,因为我不知道如何向我的ViewModel公开XAML控件(而且我不应该这样,对吗?)。

我知道我可以公开创建Mainpage的新实例的控件,但这没用,因为我需要绑定到当前实例。

Mainpage Test = new MainPage();

有人可以帮我解释一下吗?-我已经阅读了很多书,或者找不到答案或不理解!

谢谢,詹姆斯

布拉德利网

首先,您肯定有正确的想法。

您要执行的操作是创建一个ViewModel对象(已实现INotifyPropertyChanged),如下所示:

public class MainViewModel : INotifyPropertyChanged
{
    //INPC implementation

    public ObservableCollection<TermTest> MyTerms
    {
       //Standard INPC property stuff
    }
}

请注意,我使用了一个属性。您只能绑定到属性,并且需要set方法引发PropertyChanged事件。

然后,为视图设置数据上下文。您可以通过多种方式执行此操作,但最简单的方法是:

public MainView() //Default Constructor
{
    InitializeComponent();
    DataContext = new MainViewModel();
}

最后,绑定!

<ListView ItemsSource="{Binding MyTerms}"/>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在WPF和XAML和数据绑定的设计视图中查看UI更改吗?

来自分类Dev

在使用WPF和XAML以及数据绑定的设计视图中查看UI更改吗?

来自分类Dev

XAML:将FontSize绑定到控件的高度

来自分类Dev

如何将View控件正确绑定到ViewModel列表(WPF MVVM)

来自分类Dev

使用ReactiveUI WPF无法将Enum值列表从ViewModel绑定到视图中的组合框

来自分类Dev

无法使用 ReactiveUI 将列表视图中的按钮绑定到 ViewModel

来自分类Dev

XAML data.binding-如何将方法中的属性绑定到视图中的经度/纬度?

来自分类Dev

XAML data.binding-如何将方法中的属性绑定到视图中的经度/纬度?

来自分类Dev

将selectlistitems绑定到ViewModel的正确方法

来自分类Dev

在视图中设计解锁按钮

来自分类Dev

Jbutton在设计视图中消失

来自分类Dev

JFormattedTextField 在设计视图中消失

来自分类Dev

if 语句设计视图中的 eval

来自分类Dev

WPF数据将ViewModel属性绑定到用户控件内部的ListBox中,背后的代码

来自分类Dev

将 XAML 控件绑定到应用程序数据文件

来自分类Dev

如何绑定到数据上下文的设计实例

来自分类Dev

SAPUI5-将数据绑定到视图转发器控件内的图表

来自分类Dev

将ViewModel与List <T>绑定到特定控件

来自分类Dev

在“设计”视图中显示以编程方式添加到WinForms应用程序中的控件?

来自分类Dev

如何在设计视图中向自定义控件添加边框?

来自分类Dev

在“设计”视图中显示以编程方式添加到WinForms应用程序中的控件?

来自分类Dev

无法在 Xaml 中引用设计时 ViewModel

来自分类Dev

XAML将控件属性绑定到指定的样式

来自分类Dev

如何将多个模型中的数据绑定到单个视图中的列表

来自分类Dev

将两个列表绑定到一个数据网格视图中

来自分类Dev

将WPF xaml绑定到ViewModel而不构造它

来自分类Dev

如果我使用ResourceDictionary,则设计视图无法显示XAML设计

来自分类Dev

正确的MVVM设计模式-ViewModel和DataContext

来自分类Dev

列表视图中的Android材质设计混乱

Related 相关文章

  1. 1

    在WPF和XAML和数据绑定的设计视图中查看UI更改吗?

  2. 2

    在使用WPF和XAML以及数据绑定的设计视图中查看UI更改吗?

  3. 3

    XAML:将FontSize绑定到控件的高度

  4. 4

    如何将View控件正确绑定到ViewModel列表(WPF MVVM)

  5. 5

    使用ReactiveUI WPF无法将Enum值列表从ViewModel绑定到视图中的组合框

  6. 6

    无法使用 ReactiveUI 将列表视图中的按钮绑定到 ViewModel

  7. 7

    XAML data.binding-如何将方法中的属性绑定到视图中的经度/纬度?

  8. 8

    XAML data.binding-如何将方法中的属性绑定到视图中的经度/纬度?

  9. 9

    将selectlistitems绑定到ViewModel的正确方法

  10. 10

    在视图中设计解锁按钮

  11. 11

    Jbutton在设计视图中消失

  12. 12

    JFormattedTextField 在设计视图中消失

  13. 13

    if 语句设计视图中的 eval

  14. 14

    WPF数据将ViewModel属性绑定到用户控件内部的ListBox中,背后的代码

  15. 15

    将 XAML 控件绑定到应用程序数据文件

  16. 16

    如何绑定到数据上下文的设计实例

  17. 17

    SAPUI5-将数据绑定到视图转发器控件内的图表

  18. 18

    将ViewModel与List <T>绑定到特定控件

  19. 19

    在“设计”视图中显示以编程方式添加到WinForms应用程序中的控件?

  20. 20

    如何在设计视图中向自定义控件添加边框?

  21. 21

    在“设计”视图中显示以编程方式添加到WinForms应用程序中的控件?

  22. 22

    无法在 Xaml 中引用设计时 ViewModel

  23. 23

    XAML将控件属性绑定到指定的样式

  24. 24

    如何将多个模型中的数据绑定到单个视图中的列表

  25. 25

    将两个列表绑定到一个数据网格视图中

  26. 26

    将WPF xaml绑定到ViewModel而不构造它

  27. 27

    如果我使用ResourceDictionary,则设计视图无法显示XAML设计

  28. 28

    正确的MVVM设计模式-ViewModel和DataContext

  29. 29

    列表视图中的Android材质设计混乱

热门标签

归档