我有一组两个级联RadComboBoxes
- 当一个设置时,另一个填充。第二个组合框的ItemSource
设置为CompositeCollection
,它与视图模型中的ObservableCollection
绑定。
我试图在列表中添加静态值。我们的想法是CompositeCollection可以改变,但应该总有一个静态ComboBoxItem
名为 Other 。
CustomerContact.cs:
public class CustomerContact
{
public string Name { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
}
CustomerContactSource:
<CollectionViewSource x:Key="CustomerContactSource" Source="{Binding CustomerSite.CustomerContacts}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Name"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
OtherCustomerContact:
public CustomerContact OtherCustomerContactItem => new CustomerContact
{
Name = "Other",
Email = string.Empty,
PhoneNumber = string.Empty
};
Xaml页面:
<telerik:RadComboBox ItemTemplate="{StaticResource ComboBoxItemTemplate}"
SelectedItem="{Binding CustomerContact}"
Text="{Binding Source=CustomerContact, Path=Name}">
<telerik:RadComboBox.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{Binding Source={StaticResource CustomerContactSource}}"/>
<TextBlock Text="{Binding Source=OtherCustomerContactItem, Path=Name}"/>
</CompositeCollection>
</telerik:RadComboBox.ItemsSource>
</telerik:RadComboBox>
我一直收到一条错误消息,指出没有找到TextBlock到CustomerContact的转换器。我究竟做错了什么? RadComboBox有一个ItemSource,它包含CustomerContact
列表和一个不变的项目, 类型为CustomerContact
。
任何帮助都将非常感谢!!!
答案 0 :(得分:1)
RadComboBox有一个ItemSource,它是CustomerContact和的列表 一个单一的,不变的项目,也是CustomerContact类型。
最后一部分并不成立。您正在将项目包装在TextBlock中 XAML看到的类型。由于缺少TypeConverter而导致错误。
你可以包装该项目: