Установка SelectedItem для компонента ComboBox в WPF

Я был определен некоторые ComboBox элемент:

<ComboBox Height="27" Margin="124,0,30,116" Name="cbProductDefaultVatRate" VerticalAlignment="Bottom" ItemsSource="{Binding}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <Label Height="26" Content="{Binding Path=Value}"/>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

и набор источник данных для объектов компонента VatRate тип:

private void ShowAllVatRates()
{
    cbProductDefaultVatRate.Items.Clear();
    cbProductDefaultVatRate.ItemsSource = new VatRateRepository().GetAll();
}

VatRate объект имеет свойство:

private Product SelectedProduct
{
    get; set;
}

то, где продукт, содержит VatRate также:

SelectedProduct.DefaultVatRate

Как установить SelectedItem свойство ComboBox к SelectedProduct.DefaultVatRate?

// does not work!!!
cbProductDefaultVatRate.SelectedItem = SelectedProduct.DefaultVatRate;

Спасибо за ответы!

1
задан akrisanov 10 August 2017 в 18:23
поделиться

2 ответа

Вам нужно убедиться, что реальный экземпляр объекта, стоящий за SelectedProduct. DefaultVatRate является тем же экземпляром, что и тот, который является частью списка, возвращаемого new VatRateRepository().GetAll() или object.Equals() должен возвращать true для двух экземпляров.

1
ответ дан 3 September 2019 в 00:19
поделиться

Хотите получить такую ​​двустороннюю привязку?

    <ComboBox Height="27" Margin="124,0,30,116" Name="cbProductDefaultVatRate" VerticalAlignment="Bottom" 
ItemsSource="{Binding}" 
SelectedItem="{Binding SelectedProduct.DefaultVatRate, Mode=TwoWay}>
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <Label Height="26" Content="{Binding Path=Value}"/>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>
1
ответ дан 3 September 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: