无法将简单的组合框与 MVVM 和 WCF RIA 服务绑定

本文关键字:MVVM WCF RIA 绑定 服务 简单 组合 | 更新日期: 2023-09-27 17:56:09

我有一个带有域服务的简单项目,我正在尝试从我的视图模型将 combox 与域服务绑定。

我正在使用mvvm设计模式,请注意,当我不使用mvvm设计模式并且我从后面的代码绑定组合框时,我在组合框上看到结果。

enter code here

public class MainViewModel:INotifyPropertyChanged
{
    DomainService1 ctx = new DomainService1();
    private ObservableCollection<product> _products;
    public ObservableCollection<product> Products
    {
        get { return _products; }
        set {
            if (value != _products)
            {
                _products = value;
                OnPropertyChanged("Products");
            }
        }
    }
    public MainViewModel()
    {
        if (!DesignerProperties.IsInDesignTool)
        {
            LoadProdcuts();
        }
    }
    private void LoadProdcuts()
    {
        ctx.Load(ctx.GetProductsQuery(), LoadProdcutCallBack, null);
    }
    private void LoadProdcutCallBack(LoadOperation<product>lo)
    {
        _products = new ObservableCollection<product>(lo.Entities);
    }

    private void OnPropertyChanged(string propName)
    {
        if (this.PropertyChanged != null)
        {
            this.PropertyChanged(this, new PropertyChangedEventArgs(propName));
        }
    }
    public event PropertyChangedEventHandler PropertyChanged;
}
enter code here
<UserControl.Resources>
    <data:MainViewModel x:Key="VwModel"/>
</UserControl.Resources>

    <ComboBox HorizontalAlignment="Left"  VerticalAlignment="Top" Height="30" Width="100" ItemsSource="{Binding Products}"/>

无法将简单的组合框与 MVVM 和 WCF RIA 服务绑定

必须设置DataContext属性:

<ComboBox HorizontalAlignment="Left"  VerticalAlignment="Top" Height="30" Width="100" 
                      DataContext="{StaticResource VwModel}"
                      ItemsSource="{Binding Products}"/>