C# WPF ComboBox

Fórumok

Üdv,

Egy comboBox-ot szeretnék feltölteni dinamikusan, ezeket nézegettem:

https://stackoverflow.com/questions/561166/binding-a-wpf-combobox-to-a-…

<ComboBox x:Name="comboBoxDepartment" HorizontalAlignment="Left" Margin="210,339,0,0" VerticalAlignment="Top" Width="276" ItemsSource="{Binding Path=lst}" DisplayMemberPath="departmentName" SelectedValuePath="Id" SelectedValue="{Binding Path=lst}"/>

Teszt kód:

List<Department> lst = new List<Department> { new Department { Id = 1, departmentName = "Első" } };

Üres a ComboBox. Mit csinálok rosszul?

Azt  szeretném, hogy a kiválasztott elem (név alapján) a hozzátartozó Id-t kapjam meg.

Hozzászólások

Szerkesztve: 2023. 12. 25., h – 12:21

Aki ennyiből megmondja elsőre annak fizetek egy sört! :)

Kérdés az (is), hogy  a ComboBox miben van? pl Grid.Resources

Bevallom nincs kedvem újratanulni. (Örülök, hogy nem kell.) Ami nálad baj lehet, hogy a kötés (binding) egyirányú.

 

• Átállítható az adatkötés iránya
• OneWay: a forrása változtatja a célt
• OneWayToSource: a cél változtatja a forrást
• TwoWay: oda-vissza megtörténik a módosítás
• OneTime: a forrás inicializálja a célt, de a további változtatásoknak nincs hatása
• Default: a vezérlő tulajdonságának alapbeállítása (eltér) → legtöbb TwoWay

Szerkesztve: 2023. 12. 25., h – 12:55
public List<Department> lst { get; } = new List<Department> { new Department { Id = 1, departmentName = "Első" } };

EDIT: na jó, bővebben, bár tényleg nem sok az infó:

- Az lst property legyen ^^^^^^

- A Departmentben is property-k legyenek:

    public class Department
    {
        public int Id { get; set; }
        public string? departmentName { get; set; }
    }

- DataContext legyen beállítva

- Ahova szeretnéd a kiválasztott ID-t bindolni, annak is legyen egy propertyje:

public int? slctd { get; set; }

- és akkor az xaml ennek megfelelően:

<ComboBox x:Name="comboBoxDepartment" HorizontalAlignment="Left" Margin="210,339,0,0" VerticalAlignment="Top" Width="276" ItemsSource="{Binding Path=lst}" DisplayMemberPath="departmentName" SelectedValuePath="Id" SelectedValue="{Binding Path=slctd}"/>

Nem csak a kötést kell lekezelni, hanem egy eseményt is, ami érzékeli bármely oldalon van változás a modellben. Emailben küldtem anyagot, abban benne van.