2016-11-04 149 views
0

我想綁定TextBox對象的屬性,我不能讓它的工作。文本框綁定

我想這兩種用途既不作品:

<TextBox Name="textBoxZbozi" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" Margin="1" 
      VerticalContentAlignment="Center" Text="{Binding Path=Artikl_CODE, ElementName=vybranyRadek}" /> 

<TextBlock Name="textBlockArtikl" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Margin="1" 
      Text="{Binding Path=vybranyRadek.Artikl_NAME}" TextWrapping="Wrap" /> 

視圖模型:

private Radek vybranyRadek; 
public Radek VybranyRadek 
{ 
    get 
    { 
     return this.vybranyRadek; 
    } 
    set 
    { 
     this.vybranyRadek = value; 
     NotifyPropertyChanged("VybranyRadek"); 
    } 
} 

Radek類:

public class Radek 
    { 
     public bool ZASKRTNUTO { get; set; } 
     public string ID { get; set; } 
     public string Artikl_ID { get; set; } 
     public string Artikl_NAME { get; set; } 
     public string Artikl_CODE { get; set; } 
     public string Sarze_ID { get; set; } 
     public string Sarze_NAME { get; set; } 
     public string Sarze_POPIS { get; set; } 
     public string Umisteni_ID { get; set; } 
     public string Umisteni_NAME { get; set; } 
     public double Mnozstvi { get; set; } 
     public string Jednotka { get; set; } 
} 

vybranyRadek應創建並填充了一些數據。這是我如何分配數據:

Radek temp = ((Radek)dataGrid.SelectedItem); 
viewModel.VybranyRadek = temp; 

我在哪裏做錯了?

+0

你在哪裏分配datacontext,你是否指定它? –

+0

對不起,我沒有包含它,但'this.DataContext = viewModel;'在'窗口'構造函數 – Sk1X1

+0

'vybranyRadek'應該是第一個字母大寫'VybranyRadek' – Pikoh

回答

1

嘗試

<TextBox Name="textBoxZbozi" Text="{Binding VybranyRadek.Artikl_CODE}" /> 

請注意,WPF綁定是區分大小寫的。

+0

感謝您的回答,它是第一個大寫字母 – Sk1X1

1

首先,您在綁定中使用了「vybranyRadek」,但這是成員名稱。你必須使用「VybranyRadek」。第二個問題是,在第一個Binding中你使用了「ElementName」。如果包含該屬性的ViewModel是兩個TextBlocks的DataContext,則不必使用它。簡單地使用:

<TextBox Name="textBoxZbozi" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" Margin="1" 
      VerticalContentAlignment="Center" Text="{Binding VybranyRadek.Artikl_CODE}" /> 

<TextBlock Name="textBlockArtikl" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Margin="1" 
       Text="{Binding VybranyRadek.Artikl_NAME}" TextWrapping="Wrap" /> 
+0

謝謝,這是大寫的第一封信 – Sk1X1