MVVM ViewModel =>视图绑定混乱

时间:2018-08-09 11:55:32

标签: c# wpf xaml mvvm

目前,我正在玩MVVM,到了我不明白的地步。

我尝试将ViewModel绑定到我的View(MainWindow),如果我在后面的代码中将其绑定,则可以正常工作。

public MainWindow()
{
    InitializeComponent();

    var vm = new ProductViewModel();
    DataContext = vm;
    ProductDatagrid.ItemsSource = vm.Products;
}

但是,如果我将所有内容绑定到Xaml中,我都希望获得相同的结果。

遵循我在Xaml中尝试达到的相同结果。

<Window x:Class="PriceListener.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:PriceListener"
    xmlns:themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" 
    xmlns:svgc="http://sharpvectors.codeplex.com/svgc/"
    xmlns:viewModel="clr-namespace:PriceListener.ViewModel"
    mc:Ignorable="d"
    Title="Preis Beobachter" Height="450" Width="800">
<Window.DataContext>
    <viewModel:ProductViewModel/>
</Window.DataContext>
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="auto"/>
    </Grid.ColumnDefinitions>

    <DataGrid x:Name="ProductDatagrid" CanUserAddRows="False" AlternationCount="2" AlternatingRowBackground="LightGray" ItemsSource="{Binding Products}">
        <....

这是视图模型的重要部分

public class ProductViewModel : ViewModelBase
{
    public ObservableCollection<Product> Products = new ObservableCollection<Product>();

Visual Studio(2017)将ItemsSource="{Binding Products}">标记为错误

  

ObservableCollection属性预期

所以我的问题是:我在做什么错了?

0 个答案:

没有答案