如何指定要在Xaml设计器中使用的资源的默认值

时间:2014-08-25 10:10:48

标签: wpf xaml localization attributes designer

我有一个本地化资源(如here所述)来表示控件上的FlowDirection,并且它在所有其他本地化字符串等方面都很有效。

Resources.designer.cs:

/// <summary>
/// Looks up a localized string similar to RightToLeft.
/// </summary>
public static string enumDirection {
    get {
        return ResourceManager.GetString("enumDirection", resourceCulture);
    }
}

Xaml中的用法:

<StackPanel FlowDirection="{Loc enumDirection}">

问题:

唯一的问题是我不能再使用设计器了,因为它显示了以下错误消息:

  

ArgumentException:''不是属性'FlowDirection'的有效值。

     

栈跟踪
  在System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp,Object value,PropertyMetadata metadata,Boolean coerceWithDeferredReference,Boolean coerceWithCurrentValue,OperationType operationType,Boolean isInternal)
  在System.Windows.DependencyObject.SetValue(DependencyProperty dp,Object value)
  在Soheil.Common.Localization.LocalizedDependencyProperty.SetValue(对象值)
  在Soheil.Common.Localization.LocalizedValue.UpdateValue()
  在Soheil.Common.Localization.LocExtension.b__0(对象x)
  在System.Windows.Threading.ExceptionWrapper.InternalRealCall(委托回调,对象args,Int32 numArgs)
  在MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source,Delegate方法,Object args,Int32 numArgs,Delegate catchHandler)

     

InnerException:无

这不起作用:

public static string enumDirection {
    get {
        var tmp = ResourceManager.GetString("enumDirection", resourceCulture);
        return string.IsNullOrEmpty(tmp) ? "RightToLeft" : tmp;
    }
}

所以我尝试添加一些属性(EditorAttribute和DefaultValue)让设计者在设计师时间内知道enumDirection的默认值。但我无法使它发挥作用。

如何摆脱该错误消息?

0 个答案:

没有答案