идентифицировать элементы в combobox в c# и xaml?

У меня есть этот combobox в XAML:

<ComboBox x:Name="Tempos" 
              HorizontalAlignment="Left" 
              Height="55" 
              Margin="90,216,0,0" 
              VerticalAlignment="Top" 
              Width="205" SelectionChanged="Tempos_SelectionChanged" >
        <ComboBoxItem Content="2/4" />
        <ComboBoxItem Content="3/4" />
        <ComboBoxItem Content="4/4" />
        <ComboBoxItem Content="5/4" />
        <ComboBoxItem Content="6/4" />
        <ComboBoxItem Content="7/4" />
    </ComboBox>

И в C# у меня есть этот метод:

private void Tempos_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        resultado.text= Tempos.SelectedIndex.ToString();

    }

Я занимаю selectedindex но это служит, если известен всегда порядок, но если динамический порядок полей во мне ComboBox как identidico?

3
задан 15.05.2016, 21:40
3 ответа

Если ты нуждаешься в идентификаторе для каждой статьи изогнутого, ты это был бы должен распределять используя SelectedValuePath тему дело в том, что чтобы мочь распределять это, ты был бы должен показывать источник данных

WPF ComboBox and DataBinding: DataContext, ItemsSource, DisplayMemberPath, SelectedItem, SelectedValue & SelectedValuePath

идея состоит в том, чтобы ты определил класс, например

public class Country
{
   public string Name { get; set; }
   public string Id{ get; set; }
}

и смог показывать это в контроле

<ComboBox
   ItemsSource="{Binding Countries, Mode=OneWay}"
   DisplayMemberPath="Name"
   SelectedValue="{Binding ...}"
   SelectedValuePath="Id" />

, что, когда ItemsSource распределил свойство Countries, которое было бы одной List<Country>, ты можешь показывать свойства, которые определяют Value каждого элемента, тогда ты мог бы использовать SelectedValue, чтобы брать стоимость, которую он идентифицирует в элемент в списке, не импортируя порядка, в котором загружаются

1
ответ дан 24.11.2019, 14:22

DeberГ-эксперт загружать один пойдите, чтобы мочь идентифицировать их, но tambiГ©n обрежь получать стоимость отборного Г-tem следующего способа:

string value = Tempos.SelectedValue.ToString();
resultado.text = "Selected: " + value ;
0
ответ дан 24.11.2019, 14:22

Чтобы получать элемент, выбранный в comboBox в C# я это предлагаю:

private void Tempos_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
       resultado.text= Tempos.SelectedItem.ToString();
    }

не путай Индекс (Г-ndice) со Статьей (элементом). Г-ndice - та posiciГіn элемента, начиная с 0. Элемент (Статья), это объект в ней colecciГіn объектов.

0
ответ дан 24.11.2019, 14:22