早上好,
如果这是一个重复的问题我提前道歉,我不确定是什么问题,所以我不知道该搜索什么!
但是,我已将XAML中的Combobox设置为
<ComboBox HorizontalAlignment="Left"
Width="120"
Text="{Binding PV.Loc}"
SelectedItem="{Binding PV.Loc, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<ComboBoxItem>.</ComboBoxItem>
<ComboBoxItem Content="{Binding GetVer}"/>
</ComboBox>
当我选择GetVer值(属性是一个字符串)时,我得到以下内容:
System.Windows.Controls.ComboBoxItem:GetVer值
但是,当我选择点时,它设置正确。
当然这很简单,我需要改变什么?
由于
答案 0 :(得分:1)
您需要设置DisplayMemberPath
属性
<ComboBox HorizontalAlignment="Left" DisplayMemberPath="value" />
</ComboBox>
如果您要绑定数据,也不应使用<ComboBoxItem>.</ComboBoxItem>
。
答案 1 :(得分:0)
设置Combo的DisplayMemberPath
属性。
答案 2 :(得分:0)
你在数据绑定时试试这个吗?你不需要ComboBoxItems ......
//model
class DummyModel{
public int Id{get;set;}
public string Value{get;set;}
}
//view-model
class DemoVM:INotifyPropertyChanged{
private int selId;
//you can build the list any way you want (even with hardcoded values...)
public List<DummyModel> Items{get{return new List<DummyModel>();}}
public int SelectedId{
get{return selId;}
set{
if(selId==value)return;
selId=value;
RaisePropertyChanged("SelectedId");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string name){
//raise event here
}
}
//view
<ComboBox ItemsSource="{Binding Items}"
SelectedValue="{Binding SelectedId}"
SelectedValuePath="Id" IsTextSearchEnabled="True" IsTextSearchCaseSensitive="False"
IsEditable="True" TextSearch.TextPath="Value">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>