如何解决WPF:ComboBox ItemTemplate直到我选中该框后才会应用
|| 我有一个viewmodel,它的属性是类的实例。当我说viewmodel时,我有一个ComboBox动态绑定到该类的集合。问题是,如果Item在编辑ItemTemplate之前具有实例,则在我选择并展开ComboBox之前不会被应用。 因此,当我弹出“编辑”窗口时,显示在comboBox中的项目为myProject.myNameSpace.Type
,但是当我单击ComboBox时,它就会变成应有的NameOfType SomeInfo
。
XAML:
<ComboBox Grid.Column=\"1\"
Width=\"Auto\"
HorizontalAlignment=\"Left\"
VerticalAlignment=\"Top\"
SelectedItem=\"{Binding Path=Type,Mode=TwoWay}\"
ItemsSource=\"{Binding Path=AvailableTypes}\"
TextSearch.TextPath=\"TypeName\"
IsTextSearchEnabled=\"True\"
IsEditable=\"True\" >
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation=\"Horizontal\">
<TextBlock Margin=\"4\"
Text=\"{Binding Path=TypeName}\" />
<TextBlock Margin=\"4\"
Text=\"{Binding Path=TypeInfo}\" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock Text=\"{Binding Path=Name}\"
Foreground=\"Red\">
</TextBlock>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ComboBox.GroupStyle>
C#:
private ListCollectionView _availableTypes;
public ListCollectionView AvailableTypes
{
get
{
if (_availableTypes == null)
{
_availableTypes = new ListCollectionView(Context.GetAllTypes());
_availableTypes.GroupDescriptions.Add(new PropertyGroupDescription(\"Category\"));
}
return _availableTypes;
}
}
public TypeClass Type
{
get { return Model.Type; }
set
{
Model.Type = value;
RaisePropertyChanged(\"Type\");
}
}
解决方法
无法复制。可能是因为您的AvailableTypes属性返回的是
_availableSections
而不是_availableTypes
?如果没有,请发布完整的隔离说明。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。