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; |
} |
} |
} |