Я следую примеру, опубликованному Telerik, о том, как показать / скрыть столбцы в их элементе управления RadGridView, как показано здесь:
<StackPanel x:Name="CustomizeGrid" Background="Transparent" Orientation="Horizontal">
<ListBox ItemsSource="{Binding Columns, ElementName=WorklistGridView}">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Header}" IsChecked="{Binding IsVisible, Mode=TwoWay}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<telerik:RadGridView x:Name="WorklistGridView" AutoGenerateColumns="False" RowIndicatorVisibility="Collapsed" IsReadOnly="True" SelectionMode="Multiple"
CanUserSelect="False" IsSynchronizedWithCurrentItem="False" ItemsSource="{Binding Mode=OneWay}" IsFilteringAllowed="True">
<telerik:RadGridView.Columns>
<telerik:GridViewSelectColumn x:Name="Select" IsResizable="False" />
<telerik:GridViewDataColumn Header="Status" DataMemberBinding="{Binding OrderStatusDescription}"/>
<telerik:GridViewDataColumn Header="Patient Name" DataMemberBinding="{Binding PatientName}"/>
Но пример не компилируется правильно. Проблема здесь:
CheckBox Content = "{Binding Header}"
Основная ошибка в списке: значение не попадает в ожидаемый диапазон.
Я не уверен, почему это происходит. Я постараюсь опубликовать остальную часть ошибки ниже. У кого-нибудь еще есть такая работа, или есть идеи, что случилось?
System.InvalidOperationException
Обнаружено необработанное исключение при попытке визуализации текущего проекта silverlight на поверхности конструктора. Чтобы диагностировать этот сбой, попробуйте запустить проект в обычном браузере, используя среду разработки Silverlight.
в Microsoft.Windows.Design.Platform.SilverlightViewProducer.OnUnhandledException (Отправитель объекта, ViewUnhandledExceptionEventArgs e)
в Microsoft.Expression.Platform.Silverlight.SilverlightPlatformSpecificView.OnUnhandledException (Отправитель объекта, аргументы ViewUnhandledExceptionEventArgs)
в Microsoft.Expression.Platform.Silverlight.Host.SilverlightImageHost. <> c_ DisplayClass1.b _0 (Object o)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall (обратный вызов делегата, аргументы объекта, Int32 numArgs)
в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen (Источник объекта, Метод делегата, Аргументы объекта, Int32 numArgs, Делегат catchHandler)
System.ArgumentException
Значение не попадает в ожидаемый диапазон.
в MS.Internal.XcpImports.CheckHResult (UInt32 ч)
в MS.Internal.XcpImports.SetValue (IManagedPeerBase obj, свойство DependencyProperty, DependencyObject doh)
в MS.Internal.XcpImports.SetValue (IManagedPeerBase doh, свойство DependencyProperty, Object obj)
в System.Windows.DependencyObject.SetObjectValueToCore (DependencyProperty dp, значение объекта)
в System.Windows.DependencyObject.SetEffectiveValue (свойство DependencyProperty, EffectiveValueEntry & newEntry, объект newValue)
в System.Windows.DependencyObject.UpdateEffectiveValue (свойство DependencyProperty, EffectiveValueEntry oldEntry, EffectiveValueEntry & newEntry, операция ValueOperation)
в System.Windows.DependencyObject.RefreshExpression (DependencyProperty dp)
в System.Windows.Data.BindingExpression.SendDataToTarget ()
в System.Windows.Data.BindingExpression.SourceAcquired ()
в System.Windows.Data.BindingExpression.System.Windows.IDataContextChangedListener.OnDataContextChanged (Отправитель объекта, DataContextChangedEventArgs e)
в System.Windows.Data.BindingExpression.DataContextChanged (Отправитель объекта, DataContextChangedEventArgs e)
в System.Windows.DataContextChangedEventHandler.Invoke (Отправитель объекта, DataContextChangedEventArgs e)
в System.Windows.FrameworkElement.OnDataContextChanged (DataContextChangedEventArgs e)
в System.Windows.FrameworkElement.OnTreeParentUpdated (DependencyObject newParent, логический bIsNewParentAlive)
в System.Windows.DependencyObject.UpdateTreeParent (IManagedPeer oldParent, IManagedPeer newParent, логический bIsNewParentAlive, логический keepReferenceToParent)
в MS.Internal.FrameworkCallbacks.ManagedPeerTreeUpdate (IntPtr oldParentElement, IntPtr parentElement, IntPtr childElement, Байт bIsParentAlive, Байт bKeepReferenceToParent, Байт bCanCreateParent)