首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

WPF中ComboBox绑定有关问题

2012-03-18 
WPF中ComboBox绑定问题C# code ComboBox Namesource_language ItemsSource{Binding LanguageCollect

WPF中ComboBox绑定问题

C# code
 <ComboBox Name="source_language" ItemsSource="{Binding LanguageCollection, Mode=OneWay}"                                  SelectedValuePath="langID" DisplayMemberPath="showInfo"                                   SelectedItem="{Binding SourceLang, Mode=TwoWay}" />

绑定值
C# code
        private LanguageType sourceLang;        public LanguageType SourceLang        {            get { return sourceLang; }            set            {                sourceLang = value;                OnPropertyChanged("SourceLang");            }        }        private ObservableCollection<LanguageType> languageCollection;        public ObservableCollection<LanguageType> LanguageCollection        {            get             {                return languageCollection;            }            set            {                languageCollection = value;                OnPropertyChanged("LanguageCollection");            }        }

初始化值:

C# code
 sourceLang = new LanguageType();            sourceLang.langID = 1;            sourceLang.showInfo = "中文";            languageCollection = new ObservableCollection<LanguageType>(){                    new LanguageType(){langID = 1, showInfo = "中文"},                    new LanguageType(){langID = 2, showInfo = "英语"},                };

绑定后,ComboBox确实有了所有的选项,但是select的值为空,没有显示“中文”,这是什么情况?

[解决办法]
看下你建立的数据结构呢....
showInfo是否是一个属性暴露出来的呢?
[解决办法]
XML code
<ComboBox Name="source_language" ItemsSource="{Binding LanguageCollection, Mode=OneWay}"                                  [del]SelectedValuePath="langID" [/del]DisplayMemberPath="showInfo"                                   SelectedItem="{Binding SourceLang, Mode=TwoWay}" />
[解决办法]
你的绑定方式有问题。参考
http://blog.csdn.net/tcjiaan/article/details/6941601
[解决办法]
string dd=(source_language.SelectedItem as LanguageType).showInfo;
[解决办法]
开始绑定的时候是空的,因为绑定数据是异步.
if(source_language.SelectedItem !=null)
{
}
[解决办法]
探讨

绑定后,前台ComboBox选项改变后,绑定的showInfo和langID也确实跟着改变了。唯一的问题是初始显示的值是空的。而不是我想要的DisplaymemberPath的值,求解,,谢谢!!

[解决办法]
因为SourceLang与你Bingding源的数据不是同一份,虽然数据值相同,你试试把SourceLang=languageCollection[0];

热点排行