c# - ObservableDictionary binding to combobox display value(MVVM) -
i have problem databinding. have wpf (mvvm) user control project. there comboboxes , labels. every combobox binds observabledictionary<int,string>. problem need show string part of dictionary on combobox.
also, combobox itemsource changes depends on selected @ previous combobox. , mvvm pattern. there model , view model.
i tried setting displaypathetc. couldn't show strings on combos. seeing [0, sample], [1,yes].
<combobox horizontalalignment="left" margin="250,15,0,0" verticalalignment="top" width="120" name="cbxerisim" selectionchanged="cbxerisim_selectionchanged" itemssource="{binding derisimkodu}" /> <combobox horizontalalignment="left" margin="250,45,0,0" verticalalignment="top" width="120" name="cbxteklifdurum" selectionchanged="cbxteklifdurum_selectionchanged" itemssource="{binding dteklifdurumu}"/> <combobox horizontalalignment="left" margin="250,75,0,0" verticalalignment="top" width="120" name="cbxteklifsonuc" selectionchanged="cbxteklifsonuc_selectionchanged" itemssource="{binding dteklifsonuc}"/>
you need set following properties (i'm assuming observabledictionary inherits idictionary<tkey, tvalue>):
selectedvaluepath="key" displaymemberpath="value" i have tested using this implementation of observabledictionary<tkey, tvalue>
in view:
<combobox width="35" selectedvaluepath="key" displaymemberpath="value" itemssource ="{binding firstdictionary}"/> and view model:
public class viewmodel { private observabledictionary<int, string> _firstdictionary; public viewmodel() { _firstdictionary = new observabledictionary<int, string>() { new keyvaluepair<int, string>(1, "a"), new keyvaluepair<int, string>(2, "b"), new keyvaluepair<int, string>(3, "c") }; } public observabledictionary<int, string> firstdictionary { { return _firstdictionary; } set { _firstdictionary = value; } } }
Comments
Post a Comment