This question is locked. New answers and comments are not allowed.
For various reasons that I don't want to go into here I need to hide one of the items in a combobox. I tried doing this with container bindings but it does not work. Binding IsSelected and IsEnabled work fine, but not Visibility (see the code below). Is this a bug, or is it not meant to work?
| <UserControl x:Class="TelerikTestProject.SilverlightControl3" |
| xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| xmlns:telerikbase="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls" |
| xmlns:telerikinput="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Input" |
| xmlns:teleriknav="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Navigation" |
| xmlns:local="clr-namespace:TelerikTestProject" |
| xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| Width="400" |
| Height="300"> |
| <Grid x:Name="LayoutRoot" |
| Background="White"> |
| <Grid.Resources> |
| <telerikbase:ContainerBindingCollection x:Name="UserItemBindings"> |
| <telerikbase:ContainerBinding PropertyName="IsSelected" |
| Binding="{Binding IsSelected, Mode=TwoWay}" /> |
| <telerikbase:ContainerBinding PropertyName="Visibility" |
| Binding="{Binding UserVisibility, Mode=TwoWay}" /> |
| <telerikbase:ContainerBinding PropertyName="IsEnabled" |
| Binding="{Binding UserIsEnabled, Mode=TwoWay}" /> |
| </telerikbase:ContainerBindingCollection> |
| <DataTemplate x:Key="UserItemTemplate" |
| telerikbase:ContainerBinding.ContainerBindings="{StaticResource UserItemBindings}"> |
| <TextBlock Text="{Binding FirstName}"></TextBlock> |
| </DataTemplate> |
| <DataTemplate x:Key="UserItemTemplate_SelectionBox"> |
| <TextBlock Text="{Binding FirstName}"></TextBlock> |
| </DataTemplate> |
| </Grid.Resources> |
| <telerikinput:RadComboBox x:Name="RCBUsers" |
| VerticalAlignment="Top" |
| HorizontalAlignment="Left" |
| ItemTemplate="{StaticResource UserItemTemplate}" |
| SelectionBoxItemTemplate="{StaticResource UserItemTemplate_SelectionBox}"> |
| </telerikinput:RadComboBox> |
| </Grid> |
| </UserControl> |
| using System; |
| using System.Collections.Generic; |
| using System.Linq; |
| using System.Net; |
| using System.Windows; |
| using System.Windows.Controls; |
| using System.Windows.Documents; |
| using System.Windows.Input; |
| using System.Windows.Media; |
| using System.Windows.Media.Animation; |
| using System.Windows.Shapes; |
| using Telerik.Windows.Controls; |
| using System.Collections.ObjectModel; |
| namespace TelerikTestProject |
| { |
| public partial class SilverlightControl3 : UserControl |
| { |
| public SilverlightControl3() |
| { |
| InitializeComponent(); |
| var users = UserInfo.Get10(); |
| users[3].IsSelected = true; |
| users[4].UserVisibility = Visibility.Collapsed; |
| users[4].UserIsEnabled = false; |
| RCBUsers.ItemsSource = users; |
| RCBUsers.SelectedItem = (from user in users where user.IsSelected select user).SingleOrDefault(); |
| } |
| } |
| public class UserInfo |
| { |
| public string FirstName { get; set; } |
| public string LastName { get; set; } |
| public int Age { get; set; } |
| public bool IsSelected { get; set; } |
| public Visibility UserVisibility { get; set; } |
| public bool UserIsEnabled { get; set; } |
| public UserInfo() |
| { |
| } |
| public static ObservableCollection<UserInfo> Get10() |
| { |
| ObservableCollection<UserInfo> users = new ObservableCollection<UserInfo>(); |
| for (int i = 0; i < 100; i++) |
| { |
| users.Add(new UserInfo() |
| { |
| FirstName = String.Format("FirstName {0}", i), |
| LastName = String.Format("LastName {0}", i), |
| Age = i, |
| UserVisibility = Visibility.Visible, |
| UserIsEnabled = true |
| }); |
| } |
| return users; |
| } |
| public static ObservableCollection<UserInfo> Get100() |
| { |
| ObservableCollection<UserInfo> users = new ObservableCollection<UserInfo>(); |
| for (int i = 0; i < 100; i++) |
| { |
| users.Add(new UserInfo() |
| { |
| FirstName = String.Format("FirstName {0}", i), |
| LastName = String.Format("LastName {0}", i), |
| Age = i, |
| UserVisibility = Visibility.Visible, |
| UserIsEnabled = true |
| }); |
| } |
| return users; |
| } |
| } |
| } |