2010-11-09 4 views
0
private void BindFields() 
{ 
    m_QuantityBinding = new Binding("Quantity"); 
    m_QuantityBinding.Source = m_LotData; 

    txtBoxQuantity.SetBinding(TextBox.TextProperty, m_QuantityBinding); 
} 

private void LoadLotData() 
{ 
    m_PrioInterface = new PriorityInterface.PriorityInterface(); 

    m_LotData = m_PrioInterface.GetLotInfo(txtSysLotNo.Text); 

    m_QuantityBinding = new Binding("Quantity"); 
    m_QuantityBinding.Source = m_LotData; 

    txtBoxQuantity.SetBinding(TextBox.TextProperty, m_QuantityBinding); 
} 

les travaux de liaison ci-dessus que si je refais la liaison après chaque appel à GetLotInfo ... pourquoi je ne peux pas la liaison qui se trouve juste au début de l'application à l'aide BindFields? Je soupçonne que la raison est que le GetLotInfo retourne un nouvel objet à chaque fois ... puis-je passer cela afin que je vais lier une seule fois?simple WPF liaison ne fonctionne pas

merci.

Répondre

0

Lorsque vous assing la propriété .Source de votre instance de liaison

m_QuantityBinding.Source = m_LotData; 

la liaison est lié à l'instance particulière qui a été stocké à ce moment-là dans votre domaine m_LotData. Si vous attribuez une nouvelle instance à m_LotData, Wich-vous ici:

m_LotData = m_PrioInterface.GetLotInfo(txtSysLotNo.Text); 

m_QuantityBinding ne le sauriez pas, sauf si vous définissez la .Source anwew.

Questions connexes