首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ComboBox没有显示SelectedValue

ComboBox没有显示SelectedValue
EN

Stack Overflow用户
提问于 2016-01-25 17:46:53
回答 1查看 80关注 0票数 0

我对ComboBox有个问题。当我试图将它设置为显示数据库中的数据时,它不会显示值。ComboBox在app.xaml中有来自数组的项。

这是代码:

app.xaml

代码语言:javascript
复制
    <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

代码语言:javascript
复制
    <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

代码语言:javascript
复制
    combobox1.SelectedValuePath = "ValueString";
    combobox1.DisplayMemberPath = "ValueString";
    combobox1.ItemsSource = "Opcje_rodzaju";
    combobox1.SelectedValue = k.Rodzaj_poj;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-25 18:58:05

假设您的模型定义如下:

代码语言:javascript
复制
public class ComboBoxItemString
{
    public string ValueString { get; set; }
}

属性Rodzaj_poj是绑定到SelectedValue of comboBox的属性,它需要是string而不是ComboBoxItemString对象。

代码语言:javascript
复制
 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,接口就会被通知。

代码语言:javascript
复制
public partial class MainWindow : Window, INotifyPropertyChanged
{
    public MainWindow()
    {
        InitializeComponent();
        Rodzaj_poj = "N3";
    }

  //.. 
    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        var handler = PropertyChanged;
        if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34998911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档