Silverlight 4 TargetNullValue для ресурса - PullRequest
4 голосов
/ 15 ноября 2010

У меня есть кнопка с привязкой к данным, у которой есть TargetNullValue:

<Button Content="{Binding Path=NextItem, Mode=OneWay, TargetNullValue='None'}" />

, которая отлично работает, и когда NextItem имеет значение NULL, кнопка показывает «Нет».Но я хочу привязать нулевое значение к чему-либо.

Чтобы упростить вещи, давайте предположим, что у меня есть свойство в моей ViewModel с именем NullValue, которое возвращает строку, к которой я хочу привязаться, когда null:

<Button Content="{Binding Path=NextItem, Mode=OneWay, TargetNullValue={Binding Path=NullValue}}" />

Но это выдает:

System.Windows.Markup.XamlParseException: Provide value on 'System.Windows.Data.Binding' threw an exception. [Line: 129 Position: 92] 
---> System.InvalidOperationException: Operation is not valid due to the current state of the object.
at MS.Internal.XamlManagedRuntimeRPInvokes.TryApplyMarkupExtensionValue(Object target, XamlPropertyToken propertyToken, Object value)
at MS.Internal.XamlManagedRuntimeRPInvokes.SetValue(XamlTypeToken inType, XamlQualifiedObject& inObj, XamlPropertyToken inProperty, XamlQualifiedObject& inValue)

Что я действительно хочу сделать, так это связать нулевое значение с resx, поэтому я имею это в словаре ресурсов элемента управления и изменяю привязку следующим образом:

<res:AppResources x:Key="appResources" />
...
<Button Content="{Binding Path=NextItem, Mode=OneWay, TargetNullValue={Binding Path=NullValue,Source={StaticResource appResources}}}" />

Это также вызывает то же исключение.Есть предложения?

1 Ответ

1 голос
/ 20 декабря 2010

Я создал проблему для этого в Connect. Если кто-то сталкивался с этим, пожалуйста, оцените ошибку.

https://connect.microsoft.com/VisualStudio/feedback/details/632602/silverlight-4-targetnullvalue-binding-to-resource

...