[英]Multibinding ComboBox.Text
我有一個用於選擇屏幕分辨率width x height的組合框。 例如:1024x768(標准)800x699(標准)1500x900(寬)
我有一個MutliValueConverter可以將分辨率字符串轉換為視圖模型的寬度和高度成員(在converter的ConvertBack方法中),但是Convert方法僅返回null。
在我有組合框的xaml中
<ComboBox.Text>
<MultiBinding Converter="{StaticResource resolutionConverter}">
<Binding Path="GameWidth"/>
<Binding Path="GameHeight"/>
</MultiBinding>
</ComboBox.Text>
當我單擊以在組合框中選擇一個值時,組合框將退回到不選擇任何內容。 這是為什么 ?
我認為您不應該做這樣的事情,通常您只需要將ItemsSource
設置為您的viewmodels集合,並將DisplayMemberPath
設置為包含顯示字符串的屬性的名稱,並且應該就此。 然后,所選項目將成為視圖模型。
如果視圖模型沒有顯示字符串,則可以將其綁定到<string,ViewModel>
的字典,則需要將DisplayMemberPath
設置為Key
並將SelectedValuePath
為Value
,那么所選的VM將位於SelectedValue
屬性中。
(生成項目的顯示字符串的另一個選項是使用ItemTemplate
。然后,VM當然應該具有可以在其中使用的適當屬性。不過,這與IsEditable
一起不能很好地工作)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.