2009-07-22 31 views
7

Tôi có hai hộp văn bản, một hộp cho trường địa chỉ thanh toán và một cho trường địa chỉ giao hàng. Khi người dùng một cái gì đó vào văn bản địa chỉ thanh toán hộp địa chỉ vận chuyển hộp văn bản được giá trị như nhau do kịch bản ràng buộc sau:WPF MultiBinding

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

này hoạt động tốt lên đến một điểm. Tôi cũng muốn địa chỉ giao hàng được ràng buộc với thực thể cơ sở dữ liệu của tôi làm địa chỉ thanh toán. Vấn đề của tôi là khi hộp văn bản địa chỉ giao hàng được điền với những gì được nhập vào địa chỉ thanh toán, thì phương thức ConvertBack không được kích hoạt trong khi điều này xảy ra. Nó chỉ được kích hoạt nếu một cái gì đó được gõ trực tiếp vào hộp văn bản địa chỉ giao hàng.

Tôi đang thiếu gì?

+0

nơi điều khiển txtAddress nằm trong MultiBinding của bạn? Ý của bạn là đặt txtBillingAddress? –

+0

Có, xin lỗi vì sự nhầm lẫn. Tình hình của tôi phức tạp hơn một chút nên tôi không thể sao chép trực tiếp + dán. – David

Trả lời

5

Có lẽ điều này sẽ dễ thực hiện hơn trong ViewModel của bạn?

public string BillingAddress{ 
    set{ 
     billingAddress = value; 
     firePropertyChanged("BillingAddress"); 
     if(string.isNullOrEmpty(ShippingAddress) 
     { 
      ShippingAddress = value; //use the property to ensure PropertyChanged fires 
     } 
    } 
    get{ return billingAddress; } 
} 
+0

Tính năng này hoạt động tốt. Cảm ơn. – David

Các vấn đề liên quan