c# - Bind to extension method in WPF -
i have simple class in c#:
public class dog {     public int age {get; set;}     public string name {get; set;} }   and created extension method :
public static class dogext {     public static string barkyourname(this dog dog) {         return dog.name + "!!!";     } }   is there way how bind result of barkyourname method wpf component?
basically : there way hwo bind extension method?
no, cannot bind extension method. can bind name-property of dog-object , use converter though.
to create converter create class implementing ivalueconverter interface. need one-way conversion (from model view) need implement convert method only. convertback method not supported converter , throws notsupportedexception.
public class nametobarkconverter : ivalueconverter {     public object convert(object value, type targettype, object parameter, cultureinfo culture)     {         var dog = value dog;         if (dog != null)         {             return dog.barkyourname();         }         return value.tostring();     }      public object convertback(object value, type targettype, object parameter, cultureinfo culture)     {         throw new notsupportedexception();     } }   then can use converter follows:
<grid>     <grid.resources>         <nametobarkconverter x:key="nametobarkconverter" />     </grid.resources>     <textblock text="{binding name, converter={staticresource nametobarkconverter}}" /> </grid>   for more information on converters see msdn: ivalueconverter.
Comments
Post a Comment