У меня был целый день особенностей Silverlight, включая эту маленькую глупость:
<ComboBox>
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="IsEnabled" Value="{Binding IsEnabled}"/>
</Style>
</ComboBox.ItemContainerStyle>
<ComboBoxItem>First</ComboBoxItem>
<ComboBoxItem>Second</ComboBoxItem>
</ComboBox>
Сказанное выше не работает с:
System.Windows.Markup.XamlParseException occurred
Message=Set property '' threw an exception. [Line: 88 Position: 52]
LineNumber=88
LinePosition=52
StackTrace:
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
InnerException: System.NotSupportedException
Message=Cannot set read-only property ''.
StackTrace:
at MS.Internal.XamlMemberInfo.SetValue(Object target, Object value)
at MS.Internal.XamlManagedRuntimeRPInvokes.SetValue(XamlTypeToken inType, XamlQualifiedObject& inObj, XamlPropertyToken inProperty, XamlQualifiedObject& inValue)
InnerException:
Если я изменю {Binding IsEnabled}
на простоTrue
или False
, тогда все работает нормально.
Я совершенно сбит с толку, потому что ComboBoxItem.IsEnabled
является DependencyProperty
и не только для чтения, поэтому сообщение об ошибке завершеномусор.
Есть идеи как это исправить?В конечном итоге все, что я хочу сделать, - это иметь свойство IsEnabled
в ComboBoxItem
s, которое будет связано со свойством в моей модели представления.
PS.Да, я также попытался связать ItemsSource
с моей коллекцией моделей представлений и убедиться, что свойство IsEnabled
действительно существует в моих моделях представлений.Та же проблема.