c# - My custom value converter causes XAML validation tool to fail -


i've created custom converter performs converting of values based on configured mapping. looks below

public class universalconverter : list<converteritem>, ivalueconverter {     private bool usedefaultvalue;      private object defaultvalue;      public object defaultvalue     {         { return defaultvalue; }         set         {             defaultvalue = value;             usedefaultvalue = true;         }     }      public object convert(object value, type targettype, object parameter, cultureinfo culture)     {         foreach (var item in this)             if (equals(item.from, value))                 return item.to;         if (usedefaultvalue)             return defaultvalue;         throw new conversionexception(string.format("value {0} can't converted , default value not allowed", value));     }      public object convertback(object value, type targettype, object parameter, cultureinfo culture)     {         foreach (var item in this)             if (equals(item.to, value))                 return item.from;         throw new conversionexception(string.format("value {0} can't converted back", value));     } }  public class converteritem {     public object { get; set; }      public object { get; set; } }  public class conversionexception : exception {     public conversionexception() { }      public conversionexception(string message) : base(message) { } } 

sample xaml below

<core:universalconverter x:key="itemcounttovisiblityconverter" defaultvalue="{x:static visibility.collapsed}">     <core:converteritem to="{x:static visibility.visible}">         <core:converteritem.from>             <system:int32>0</system:int32>         </core:converteritem.from>     </core:converteritem> </core:universalconverter> 

now builds , works fine, if use xaml visual studio underscores whole file curvy blue lines , shows 2 kind of mistakes:

1) if converter put resourcedictionary , assigned x:key attribute shows missing key value on 'universalconverter' object

2) if assign defaultvalue property value (e.g {x:null}) message xaml node stream: missing endmember 'stufflib.universalconverter.{http://schemas.microsoft.com/winfx/2006/xaml}_items' before startmember 'stufflib.universalconverter.defaultvalue'

what reason messages? can live them hide other compiler , resharper markings

don't inherit list, create items property in converter:

[contentproperty("items")] public class universalconverter : ivalueconverter {     public converteritem[] items { get; set; }      public object defaultvalue { get; set; }     //all other stuff goes here } 

and xaml:

<l:universalconverter x:key="myconverter">   <x:array type="l:converteritem">     <l:converteritem from="..." to="..." /> 

Comments

Popular posts from this blog

shopping cart - Page redirect not working PHP -

php - How to modify a menu to show sub-menus -

python - Installing PyDev in eclipse is failed -