Вопрос

У меня есть два текстовых поля, одно для поля адреса выставления счетов и одно для поля адреса доставки.Когда пользователь вводит что-либо в текстовое поле адрес выставления счета, текстовое поле адрес доставки получает то же значение из-за следующего сценария привязки:

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

До определенного момента это работает нормально.Я также хочу, чтобы адрес доставки был привязан к объекту моей базы данных, как и платежный адрес.Моя проблема заключается в том, что, хотя текстовое поле адрес доставки заполняется тем, что введено в адресе выставления счета, метод обратного преобразования не запускается, пока это происходит.Он срабатывает только в том случае, если что-то введено непосредственно в текстовое поле адрес доставки.

Что я упускаю из виду?

Это было полезно?

Решение

Может быть, это было бы проще реализовать в вашей 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; }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top