Eu tenho uma multi-ligação como
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource myConverter}">
<Binding Path="myFirst.Value" />
<Binding Path="mySecond.Value" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
E eu quero passar um valor fixo, por exemplo, "123" para uma das duas ligações acima. Como posso fazer isso usando XAML?
wpf
binding
multibinding
Nam G VU
fonte
fonte
Respostas:
Se o seu valor for simplesmente a
string
, você pode especificá-lo como uma constante noSource
propriedade de uma associação. Se for qualquer outro tipo de dado primitivo, você precisa definir um recurso estático e referenciá-lo.Defina o
sys
namespace na raiz do XAML para apontarSystem
em mscorlib e o seguinte deve funcionar:fonte
Ou, combinando as duas respostas acima:
Que fornece o tipo certo sem a confusão de recursos.
fonte
sys
no cabeçalho do documento:xmlns:sys="clr-namespace:System;assembly=mscorlib"
Não entendi bem a pergunta, mas existem duas opções:
Colocar a linha
<Binding Source="123" />
em seu multibinding passará 123 como um valor vinculado ao seu conversor.Coloque
ConverterParameter="123"
em seu MultiBinding:<MultiBinding Converter="{StaticResource conv}" ConverterParameter="123">
fonte
IValueConverter
, os parâmetros são passados comoobject
, o que significa que você precisaria converter o valor para o tipo correto, de maneira segura. IValueConverter.ConvertNão estou dizendo que esta é uma resposta especialmente boa, mas aqui está outra abordagem:
fonte