Изменение значения в DataBinding Combobox - PullRequest
0 голосов
/ 17 февраля 2011

У меня есть поле со списком и несколько текстовых полей.Теперь поле со списком привязано к некоторой коллекции.значение в текстовых полях зависит от выбранного значения Combobox.Предположим, у меня есть список или массив объекта B, скажем, arrayB.Затем текстовые поля привязываются к другому свойству объекта B. Так, например, если comobox имеет выбранное значение 1, тогда текстовые поля должны быть связаны с массивом B [1].

1 Ответ

0 голосов
/ 17 февраля 2011

Не уверен, что это именно то, что вы намеревались. Но посмотрите на приведенный ниже код и дайте мне знать, если это поможет

    public class Animal
{
    private string name;

    public string Name
    {
        get { return name; }
        set { name = value; }
    }

    private Category category;

    public Category Category
    {
        get { return category; }
        set { category = value; }
    }

    public Animal(string name, Category category)
    {
        this.name = name;
        this.category = category;
    }
}

public enum Category
{
    Amphibians,
    Bears,
    BigCats,
    Canines,
    Primates,
    Spiders,
}

public class Animals
{
    private List<Animal> animalList;

    public IEnumerable<Animal> AnimalList
    {
        get { return animalList; }
    }

    public Animals()
    {
        animalList = new List<Animal>();
        animalList.Add(new Animal("California Newt", Category.Amphibians));
        animalList.Add(new Animal("Giant Panda", Category.Bears));
        animalList.Add(new Animal("Coyote", Category.Canines));
        animalList.Add(new Animal("Golden Silk Spider", Category.Spiders));
        animalList.Add(new Animal("Mandrill", Category.Primates));
        animalList.Add(new Animal("Black Bear", Category.Bears));
        animalList.Add(new Animal("Jaguar", Category.BigCats));
        animalList.Add(new Animal("Bornean Gibbon", Category.Primates));
        animalList.Add(new Animal("African Wildcat", Category.BigCats));
        animalList.Add(new Animal("Arctic Fox", Category.Canines));
        animalList.Add(new Animal("Tomato Frog", Category.Amphibians));
        animalList.Add(new Animal("Grizzly Bear", Category.Bears));
        animalList.Add(new Animal("Dingo", Category.Canines));
        animalList.Add(new Animal("Gorilla", Category.Primates));
        animalList.Add(new Animal("Green Tree Frog", Category.Amphibians));
        animalList.Add(new Animal("Bald Uakari", Category.Primates));
        animalList.Add(new Animal("Polar Bear", Category.Bears));
        animalList.Add(new Animal("Black Widow Spider", Category.Spiders));
        animalList.Add(new Animal("Bat-Eared Fox", Category.Canines));
        animalList.Add(new Animal("Cheetah", Category.BigCats));
        animalList.Add(new Animal("Cheetah", Category.Spiders));

    }
}

Xaml

 <Window.Resources>
        <local:Animals x:Key="animals"/>
    </Window.Resources>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <ComboBox Name="cmb" VerticalContentAlignment="Center" Width="100" Height="30" ItemsSource="{Binding Path=AnimalList, Source={StaticResource animals}}" DisplayMemberPath="Name"/>
        <TextBox Width="100" Height="30" Grid.Column="1" Text="{Binding ElementName=cmb,Path=SelectedItem.Category}"/>
    </Grid>
...