2009-07-22 10 views
7

Fatura adresi alanı için bir tane ve gönderim adresi alanı için bir tane olmak üzere iki metin kutunuz var. fatura adresi metnine kullanıcı türleri şey nedeniyle aşağıdaki bağlanma senaryoya sevkıyat adresi metin kutusu aynı değeri alır kutusu zaman: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> 

Bu bir noktaya kadar iyi çalışır. Fatura adresi olarak gönderim adresinin veritabanı varlığımla ilişkilendirilmesini de istiyorum. Benim sorunum, gönderim adresi metin kutusu fatura adresinde yazılan ile doldurulurken, bu gerçekleşirken ConvertBack yöntemi işlenmemiş olmasıdır. Yalnızca gönderim adresi metin kutusuna doğrudan bir şey yazıldığında tetiklenir.

Neyi eksik?

+0

txtAddress denetimi MultiBinding'inizde nerede bulunur? TxtBillingAddress'i koymak mı istediniz? –

+0

Evet, karışıklık için özür dilerim. Durumum biraz daha karmaşık olduğundan doğrudan kopyala yapıştır yapamadım. – David

cevap

5

Belki ViewModel'inizde uygulamak daha kolay olurdu?

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

Bu güzel çalışır. Teşekkürler. – David