我正在尝试将TextBox
绑定到object属性,但我无法使其工作。
我尝试了这两种用法,但都不起作用:
<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 :(得分:1)
尝试
<TextBox Name="textBoxZbozi" Text="{Binding VybranyRadek.Artikl_CODE}" />
请注意,WPF绑定区分大小写。
答案 1 :(得分:1)
首先,您在Binding中使用了“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" />