Tengo algunos problemas con un enlace WPF a una propiedad estática. En mi aplicación hay una clase llamada Globals que contiene una propiedad estática a ThisAddIn. Este objeto me permite acceder a una propiedad de usuario que básicamente es lo que quiero usar en mi enlace. Por lo tanto, mi XAML se ve así:El valor StaticExtension no se puede resolver
<TextBlock Text="{Binding Path=User.Name
, Source={x:Static Member=s:Globals.ThisAddIn}}" />
El espacio de nombres s se declara en la parte superior por la línea siguiente:
xmlns:s="clr-namespace:ConsoleApplication16.Model"
me encontré con un montón de diferentes enfoques de cómo hacer referencia a la Propiedad estática en XAML, pero ninguna de ellas funcionó excepto esta, que también parece ser la más lógica para mí. Algunas muestras que encontré, no usaron Path o Member en absoluto.
Después de algunas pruebas, encontré la manera correcta de hacerlo, está usando "x: Static Member" para definir la clase y la propiedad estática que desea usar, mientras que Path define las propiedades correctas dentro de este objeto, como unión normal haría.
Aunque esta solución se compila sin ningún tipo de queja, aparece XAMLParseException directamente diciéndome que el valor StaticExtension no se puede resolver en una enumeración, campo estático o propiedad estática.
Cómo exactamente es que el 'way' bien si se produce una excepción? –
También debería poder descartar 'Path =' y 'Member =' porque eso invocará los contructors respectivos que establecen las propiedades relevantes. –
Normalmente me uno a clases/propiedades estáticas usando '{Binding Source = {x: Static local: MyStaticClass.SomeStaticProperty.PropertyName}'. Solo asegúrese de que sus propiedades tengan evaluadores 'get' /' set'. Por ejemplo, asegúrese de usar 'public string PropertyName {get; conjunto; } 'en lugar de' public string PropertyName; ' – Rachel