как получить значение из динамически добавляемого комбинированного списка в wpf c#? - PullRequest
0 голосов
/ 03 февраля 2020

Я хочу получить данные из выпадающего списка в WPF.

ниже приведен пример кода.

<ComboBox Name="cmbCompanies" Height="110" Width="560" HorizontalAlignment="Right"  SelectionChanged="cmbCompanies_SelectionChanged">
                    <ComboBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="{Binding Name}"/>
                            </StackPanel>
                        </DataTemplate>
                    </ComboBox.ItemTemplate>
            </ComboBox>

мой код:

для привязки данных в поле со списком:

 JArray companies = (JArray)response["data"];
            System.Diagnostics.Debug.WriteLine(companies.Count);
            if (companies.Count == 0)
            {
                // alert no compaies associated with this account.
            }
            else
            {
                System.Diagnostics.Debug.WriteLine(companies);


                for (int i = 0; i < companies.Count; i++)
                {

                    Companies com = new Companies();
                    com.Id = (string)companies[i]["id"];
                    com.Name = (string)companies[i]["name"];

                    cmbCompanies.Items.Add(com);

                }

для получения данных:

private void cmbCompanies_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            //     string text = (e.AddedItems[0] as ComboBoxItem).Content as string;
            string item = (sender as ComboBox).SelectedItem.ToString();


            string tmp = (cmbCompanies.SelectedValue as ComboBoxItem).Content.ToString();


        }

Я пытаюсь использовать приведенный выше код, но я получаю любые значения, пожалуйста, помогите по этому вопросу.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Приведите свойство SelectedItem к объекту Companies:

private void cmbCompanies_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    Companies selectedCompany = (sender as ComboBox).SelectedItem as Companies;
    if (selectedCompany != null)
    {
        string id = selectedCompany.Id;
        string name = selectedCompany.Name;
    }
}
0 голосов
/ 04 февраля 2020

Прочитайте немного о связывании данных в WPF. Создайте объект, который будет использоваться как ViewModel. Внутри ViewModel добавьте свойство типа коллекции (Observablecollection works). Свяжите свойство ItemsSource ComboBox с вашей коллекцией. Все, что вы добавите в свою коллекцию, будет отображаться в вашем ComboBox

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...