Pergunta

Eu tenho duas caixas de texto, um para um campo de endereço de cobrança e um para um campo de endereço de entrega. Quando o usuário digita algo no texto o endereço de cobrança caixa caixa de endereço de envio de texto recebe o mesmo valor em função do cenário de ligação seguinte:

<TextBox Name="txtBillingAddress" Text="{Binding BillingAddress, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />

<TextBox Name="txtShippingAddress">
   <TextBox.Text>
      <MultiBinding Converter="{StaticResource AddressConverter}">
         <Binding ElementName="txtBillingAddress" Path="Text" Mode="OneWay" />
         <Binding Path="ShippingAddress" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay" />
      </MultiBinding>
   </TextBox.Text>
</TextBox>

Isso funciona bem até um certo ponto. Eu também quero o endereço de entrega para ser ligado a minha entidade banco de dados como o endereço de cobrança é. Meu problema é que enquanto a caixa de texto o endereço de entrega é preenchida com o que é digitado no endereço de cobrança, o método ConvertBack não é acionado enquanto isso está acontecendo. Ele só é acionado se algo é digitado diretamente na caixa de texto endereço de entrega.

O que eu estou ausente?

Foi útil?

Solução

Talvez isso seria mais fácil de implementar em seu ViewModel?

public string BillingAddress{
    set{
        billingAddress = value;
        firePropertyChanged("BillingAddress");
        if(string.isNullOrEmpty(ShippingAddress)
        {
            ShippingAddress = value; //use the property to ensure PropertyChanged fires
        }
    }
    get{ return billingAddress; }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top