2012-06-17 78 views
0

我有一个问题,我的绑定到列表框控件。 其实我已经在App.xaml.cs一个属性:我如何设置从app.xaml绑定到childproperty

public partial class App : Application, INotifyPropertyChanged 
{ 
    ObservableCollection<Panier> _panier = new ObservableCollection<Panier>(); 

    public ObservableCollection<Panier> PanierProperty 
    { 
     get { return _panier; } 
     set 
     { 
      if (this._panier != value) 
      { 
       this._panier = value; 
       NotifyPropertyChanged("PanierProperty"); 
      } 
     } 
    } 
    public event PropertyChangedEventHandler PropertyChanged; 

    protected void NotifyPropertyChanged(String property) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(property)); 
     } 
    } 
} 

这个属性必须在“帕尼埃类”一子属性在这里:

public class Panier : INotifyPropertyChanged 
{ 
    private string _nom; 
    private string _category; 
    private int _prix; 

    public string Nom 
    { 
     get { return _nom; } 
     set 
     { 
      if (this._nom != value) 
      { 
       this._nom = value; 
       NotifyPropertyChanged("Nom"); 
      } 
     } 
    } 

    public string Category 
    { 
     get { return _category; } 
     set 
     { 
      if (this._category != value) 
      { 
       this._category = value; 
       NotifyPropertyChanged("Category"); 
      } 
     } 
    } 

    public int Prix 
    { 
     get { return _prix; } 
     set 
     { 
      if (this._prix != value) 
      { 
       this._prix = value; 
       NotifyPropertyChanged("Prix"); 
      } 
     } 
    } 
    public event PropertyChangedEventHandler PropertyChanged; 

    protected void NotifyPropertyChanged(String property) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(property)); 
     } 
    } 
} 

,并在我的MainWindow.xaml页我有我的列表框绑定到PanierProperty(parent属性):

<telerik:RadListBox x:Name="PanierLB" Grid.Row="1" Height="200" Width="350" Margin="0 300 0 0" 
    ItemsSource="{Binding PanierProperty, Source={x:Static Application.Current}}" 
    DisplayMemberPath="{Binding Path=PanierProperty.Nom, Source={x:Static Application.Current}}"> 
</telerik:RadListBox> 

我的问题是,PanierProperty被绑定到我的列表框我看到像Design.Panier列表框项目210 Design.Panier Design.Panier etc ... 我不知道如何获得ListBox上显示的PanierProperty.Nom(Nom是子属性)。

有人可以帮忙。

回答

1

DisplayMemberPath使用财产的名称,你想只显示:

<telerik:RadListBox 
    ... 
    DisplayMemberPath="Nom" 
+0

非常感谢它让我疯狂:■我只与{结合喃}试图不知道,谢谢:d – Linus