Domanda

Ho due caselle di testo, uno per un campo di indirizzo di fatturazione e uno per un campo di indirizzo di spedizione. Quando l'utente digita qualcosa nella barra degli indirizzi del testo della fatturazione casella casella di testo indirizzo di spedizione ottiene lo stesso valore a causa del seguente scenario di rilegatura:

<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>

Questo funziona bene fino a un certo punto. Voglio anche l'indirizzo di spedizione per essere legato alla mia entità database come l'indirizzo di fatturazione è. Il mio problema è che, mentre la casella di testo indirizzo di spedizione è popolato con quello che viene digitato l'indirizzo di fatturazione, il metodo ConvertBack non viene licenziato, mentre questo sta accadendo. Si è sparato solo se qualcosa viene digitato direttamente nella casella di testo indirizzo di spedizione.

Che cosa mi manca?

È stato utile?

Soluzione

Forse questo sarebbe più facile da implementare nel vostro 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; }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top