Как связать члена класса в коллекции - PullRequest
1 голос
/ 06 февраля 2012

Я хочу связать члена класса элемента, который я добавил в коллекцию, с DisplayMemberPath.Я связал ObservableCollection с ComboBox.ItemSource и хочу показать свойство name в списке выпадающих списков, которое является членом моего класса AxisBase.
Вот мой код:

private ObservableCollection<AxisBase> axis { get; set; }

axis Я использую для хранения элементов следующего класса

class AxisBase
{
    ...
    public string name { get; set; }
    ...
}

Так выглядит мой xaml

<ComboBox Name="comboBox_AchsenListe" DisplayMemberPath="{Binding ElementName=axis, Path=AxisBase.name}" ItemsSource="{Binding ElementName=_MainWindow, Path=axis}"</ComboBox>  

Кто-нибудь знает, как связать name с * 1018?*

1 Ответ

3 голосов
/ 06 февраля 2012

изменить значение DisplayMemberPath

 DisplayMemberPath="name" 
 SelectedValuePath="name"

и посмотрите на этот вопрос

Я создал образец приложения для вас здесь xaml

<Window x:Class="ComboBoxSample.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <ComboBox 
            ItemsSource="{Binding Path=AxisBases}" 
            DisplayMemberPath="Name" 
            SelectedValuePath="Name" 
        Height="23" HorizontalAlignment="Left" Margin="200,134,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" />
</Grid>

здесь код

using System.Collections.ObjectModel;
using System.Windows;

namespace ComboBoxSample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        AxisBases = new ObservableCollection<AxisBase>
                        {
                            new AxisBase {Name = "Firts"},
                            new AxisBase {Name = "Second"},
                            new AxisBase {Name = "Third"}
                        };
        //Set the data context for use binding
        DataContext = this;
    }

    public ObservableCollection<AxisBase> AxisBases { get; set; }
}

public class AxisBase
{
    public string Name { get; set; }
}

}

Работает нормально, и в выпадающем списке также отображается 3 элемента.

...