Mam polubienie multi-bindowania
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource myConverter}">
<Binding Path="myFirst.Value" />
<Binding Path="mySecond.Value" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Chcę przekazać stałą wartość, np. „123”, do jednego z dwóch powyższych powiązań. Jak mogę to zrobić za pomocą XAML?
wpf
binding
multibinding
Nam G VU
źródło
źródło
Odpowiedzi:
Jeśli twoją wartością jest po prostu a
string
, możesz określić ją jako stałą weSource
właściwości wiązania. Jeśli jest to inny prymitywny typ danych, należy zdefiniować zasób statyczny i odwołać się do niego.Zdefiniuj
sys
przestrzeń nazw w katalogu głównym XAML do wskazywaniaSystem
w mscorlib, a następujące elementy powinny działać:źródło
Lub łącząc dwie powyższe odpowiedzi:
Który zapewnia właściwy typ bez kludge zasobów.
źródło
sys
w nagłówku dokumentu:xmlns:sys="clr-namespace:System;assembly=mscorlib"
Nie do końca rozumiem pytanie, ale są dwie opcje:
Umieść linię
<Binding Source="123" />
w swoim multibindingu, aby przekazać 123 jako wartość związaną do twojego konwertera.Umieść
ConverterParameter="123"
swój MultiBinding:<MultiBinding Converter="{StaticResource conv}" ConverterParameter="123">
źródło
IValueConverter
programie parametry są przekazywane jakoobject
, co oznacza, że należy w bezpieczny sposób rzutować wartość na właściwy typ. IValueConverter.ConvertNie mówię, że jest to szczególnie dobra odpowiedź, ale oto inne podejście:
źródło