Mam WPF TextBox
że jest związany z widoku-modelu własności liczb Distance
przez Caliburn.Micro konwencji nazewnictwa. Chcę móc dostosować format ciągów znaków TextBox
, zachowując jednocześnie konwencję powiązania skonfigurowaną przez zestaw Caliburn.Micro. Jak mam to zrobić?Dostosowywanie format string w konwencji Caliburn.Micro związany TextBox
Z mojego Widok Model:
public double Distance
{
get { return _distance; }
set
{
_distance = value;
NotifyOfPropertyChange(() => Distance);
}
}
Z mojego View:
<TextBox x:Name="Distance"/>
Gdy Distance
jest niezerowe, chcę, aby wyświetlić numer z ustalonym zestawem miejsca dziesiętne, a gdy Distance
ma wartość zero, chcę, aby pole tekstowe było puste.
Korzystanie wyraźne wiązanie można powiązać właściwość TextBox.Text
do Distance
, a następnie mogę ustawić StringFormat
jednocześnie:
<TextBox x:Name="Distance" Text="{Binding Distance, StringFormat=0.000;;#}"/>
jednak wyraźnej Text
wiążący będzie wtedy zwarcie Caliburn.Micro nazewnictwa konwencja wiążąca. Czy można dostosować format ciągu bez konieczności ustawiania ścieżki wiązania właściwości TextBox.Text
, aby móc polegać wyłącznie na Caliburn.Micro w celu obsługi wiązania Distance
-do-TextBox
?
Krótkie odpowiedzi to nie. Albo skorzystasz z powiązania generowanego przez Caliburn, albo musisz wypisać całe wyrażenie wiążące jak w twojej próbce. – nemesv
Odległość nie musi być liczbą, jest to model tego, co chcesz widzieć w widoku. Nie należy więc przekształcać właściwości w Double, sprawić, by był to ciąg znaków w widoku. –
Wada, która po prostu wiąże wszystko ręcznie - jedyną rzeczą, która staje się związana konwencją nazw, jest domyślny bind lub akcja. Jedno wiązanie nie jest zbyt okropne, by na to patrzeć? – Charleh