2013-10-20 39 views
1

我试图绑定一个ObservableCollection的某些元素一个DataGrid,但我的问题是,当我行添加到我的数据网格显示绑定一个ObservableCollection的某些元素上一个DataGrid

这里一的的ObservableCollection的所有财产DataGrid的照片前我添加行: enter image description here

这里与行DataGrid的照片说:

enter image description here

你可以看到,列添加到DataGrid

XAML的看法:

enter image description here

视图模型:

public EntreeDeCommandeViewModel(IBanniereService banniereService 
      , IItemsFactureService itemsFactureService 
      , IFactureService factureService, INavigationService navigationService) 
     { 
      _banniereService = banniereService; 
      _navigationService = navigationService; 
      _itemsFactureService = itemsFactureService; 
      _factureService = factureService; 
      RetrieveArgs = new RetrieveArticleFactureArgs(); 

       AjouterItem = new RelayCommand(() => 
       { 
        List<ItemsFacture> _itFacture = new List<ItemsFacture>(); 
        _itFacture.Add(new ItemsFacture() {NombreArticle = RetrieveArgs.NombreArticle 
         , PrixUnitaireArticle = RetrieveArgs.PrixArticle 
         , PrixTotalArticle = (RetrieveArgs.NombreArticle * RetrieveArgs.PrixArticle) }); 
        ItemsFactures = new ObservableCollection<ItemsFacture>(_itFacture); 
       }); 
     } 

     public RetrieveArticleFactureArgs RetrieveArgs {get; set;} 

     private ObservableCollection<ItemsFacture> _itemsFacture; 

     public ObservableCollection<ItemsFacture> ItemsFactures 
     { 
      get 
      { 
       return _itemsFacture; 
      } 

      set 
      { 
       if (_itemsFacture == value) 
       { 
        return; 
       } 

       RaisePropertyChanging(); 
       _itemsFacture = value; 
       RaisePropertyChanged(); 
      } 
     } 

类:

public class ItemsFacture : ObservableObject 
{ 
    #region Membre 
    private int? _idItemsFacture = null; 
    private Facture _facture; 
    private Article _article; 
    private int? _nombreArticle; 
    private double _prixUnitaireArticle; 
    private double _prixTotalArticle; 
    #endregion 

    #region Propriete ItemsFacture 
    public virtual int? IdItemsFacture 
    { 
     get 
     { 
      return _idItemsFacture; 
     } 

     set 
     { 
      if (_idItemsFacture == value) 
      { 
       return; 
      } 

      RaisePropertyChanging(); 
      _idItemsFacture = value; 
      RaisePropertyChanged(); 
     } 
    } 

    public virtual Facture Facture 
    { 
     get 
     { 
      return _facture; 
     } 

     set 
     { 
      if (_facture == value) 
      { 
       return; 
      } 

      RaisePropertyChanging(); 
      _facture = value; 
      RaisePropertyChanged(); 
     } 
    } 

    public virtual Article Article 
    { 
     get 
     { 
      return _article; 
     } 

     set 
     { 
      if (_article == value) 
      { 
       return; 
      } 

      RaisePropertyChanging(); 
      _article = value; 
      RaisePropertyChanged(); 
     } 
    } 

    public virtual int? NombreArticle 
    { 
     get 
     { 
      return _nombreArticle; 
     } 

     set 
     { 
      if (_nombreArticle == value) 
      { 
       return; 
      } 

      RaisePropertyChanging(); 
      _nombreArticle = value; 
      RaisePropertyChanged(); 
     } 
    } 

    public virtual double PrixUnitaireArticle 
    { 
     get 
     { 
      return _prixUnitaireArticle; 
     } 

     set 
     { 
      if (_prixUnitaireArticle == value) 
      { 
       return; 
      } 

      RaisePropertyChanging(); 
      _prixUnitaireArticle = value; 
      RaisePropertyChanged(); 
     } 
    } 

    public virtual double PrixTotalArticle 
    { 
     get 
     { 
      return _prixTotalArticle; 
     } 

     set 
     { 
      if (_prixTotalArticle == value) 
      { 
       return; 
      } 

      RaisePropertyChanging(); 
      _prixTotalArticle = value; 
      RaisePropertyChanged(); 
     } 
    } 
    #endregion 
} 
+0

那么这里有什么问题?你不希望你的绑定工作? –

+0

ItemsFactures内容6个属性,我只希望其中的3个显示在我的dataGrid中,但此时显示所有属性。 – seb

+1

也许你应该看看AutoGenerateColumns属性http://msdn.microsoft.com/fr-fr/library/system.windows.controls.datagrid.autogeneratecolumns(v=vs.110).aspx – AirL

回答

1

您需要在您的dataG上设置AutoGenerateColumns属性为False因为你想自定义你的列。默认情况下它是真的。

<DataGrid AutoGenerateColumns="False"> 
    ..... 
</DataGrid> 
相关问题