文本框绑定

本文关键字:绑定 文本 | 更新日期: 2023-09-27 18:16:29

我试图将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" />

viewModel:

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;

我哪里做错了?

文本框绑定

try

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

请注意WPF绑定是区分大小写的。

首先,您在Binding中使用了"vybranyRadek",但这是成员名。你必须使用"VybranyRadek"。第二个问题是,在第一个Binding中你使用了"ElementName"。如果包含属性的ViewModel是两个textblock的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" />