tutorial micro c# wpf mvvm binding caliburn.micro

c# - tutorial - Personalizar el formato de cadena en una convención de Caliburn.Micro atada a TextBox



caliburn micro documentation (1)

No hay forma posible de lo que quieres hacer. La forma más sencilla es que te proporciones a ti mismo. La segunda forma es exponer la propiedad de cadena en ViewModel y preformatearla en el getter.

Tengo un WPF TextBox que está vinculado a una propiedad de número de vista. Distance través de las convenciones de nomenclatura de Caliburn.Micro . Quiero poder personalizar el formato de cadena TextBox mientras conserva el enlace de convención que Caliburn.Micro ha configurado. ¿Cómo debo hacer eso?

Desde mi modelo de vista :

public double Distance { get { return _distance; } set { _distance = value; NotifyOfPropertyChange(() => Distance); } }

Desde mi punto de vista :

<TextBox x:Name="Distance"/>

Cuando la Distance no es cero, quiero mostrar el número con un conjunto fijo de decimales, y cuando la Distance es cero, quiero que el cuadro de texto esté vacío.

Usando el enlace explícito, puedo vincular la propiedad TextBox.Text a Distance , y luego puedo configurar StringFormat simultáneamente:

<TextBox x:Name="Distance" Text="{Binding Distance, StringFormat=0.000;;#}"/>

Sin embargo, el enlace de Text explícito cortocircuitaría el enlace de convención de nomenclatura de Caliburn.Micro . ¿Es posible personalizar el formato de cadena sin tener que establecer simultáneamente la ruta de enlace de la propiedad TextBox.Text , de modo que pueda confiar únicamente en Caliburn.Micro para manejar la vinculación de Distance to- TextBox ?