ComboBox未显示SelectedValue

时间:2016-01-25 17:46:53

标签: c# wpf xaml

我对ComboBox有疑问。当我尝试将其设置为显示数据库中的数据时,它不会显示值。 ComboBox包含app.xaml中数组中的项目。

这是代码:

的App.xaml

    <Application.Resources>
        <x:Array x:Key="Opcje_rodzaju" Type="local:ComboBoxItemString">
            <local:ComboBoxItemString ValueString = "N2"/>
            <local:ComboBoxItemString ValueString = "N3"/>
            <local:ComboBoxItemString ValueString = "O3"/>
            <local:ComboBoxItemString ValueString = "O4"/>
            <local:ComboBoxItemString ValueString = "M2"/>
            <local:ComboBoxItemString ValueString = "M3"/>
            <local:ComboBoxItemString ValueString = "INNE"/>
        </x:Array>
        <x:Array x:Key="Opcje_tacho" Type="local:ComboBoxItemString">
            <local:ComboBoxItemString ValueString = "Analogowy"/>
            <local:ComboBoxItemString ValueString = "Cyfrowy"/>
        </x:Array>
        <x:Array x:Key="Opcje_kontroli" Type="local:ComboBoxItemString">
            <local:ComboBoxItemString ValueString = "Sprawdzono"/>
            <local:ComboBoxItemString ValueString = "Nie sprawdzono"/>
            <local:ComboBoxItemString ValueString = "Stwierdzono nieprawidłowości"/>
        </x:Array>
    </Application.Resources>

window.xaml

    <ComboBox Height="29" HorizontalAlignment="Left" Margin="343,154,0,0" VerticalAlignment="Top" Width="116" ItemsSource="{StaticResource Opcje_rodzaju}" Name="combobox1"
                                  DisplayMemberPath ="ValueString" 
                                  SelectedValuePath="ValueString"                                      
                                  SelectedValue="{Binding Rodzaj_poj, Mode=TwoWay}"/>

window.xaml.cs

    combobox1.SelectedValuePath = "ValueString";
    combobox1.DisplayMemberPath = "ValueString";
    combobox1.ItemsSource = "Opcje_rodzaju";
    combobox1.SelectedValue = k.Rodzaj_poj;

1 个答案:

答案 0 :(得分:0)

假设您的模型定义如下:

public class ComboBoxItemString
{
    public string ValueString { get; set; }
}

Rodzaj_poj的{​​{1}}绑定的属性SelectedValue需要是comboBox而不是string对象

ComboBoxItemString

最后,您需要实现 private string _rodzaj_poj; public string Rodzaj_poj { get { return _rodzaj_poj ; } set { if (_rodzaj_poj == value) { return; } _rodzaj_poj = value; OnPropertyChanged(); } } 接口,以便在更改INotifyPropertyChanged后,将通知接口

Rodzaj_poj