1

案子:

public class customer
{
    public string Adress { get; set; }
}

xml:

<Grid x:Name="LayoutRoot" Background="White" >
  <StackPanel>
      <TextBox Text="{Binding Adress}"/>
  </StackPanel>
</Grid>

。CS

    public MainPage()
    {
        InitializeComponent();
        LayoutRoot.DataContext = new customer() { Adress = "Some Adr" };
    }

所以问题是,在后面的代码中。如何获取绑定(地址)的属性(字符串)。我需要它来访问 customer.adress 作为属性,分配另一个变量。(在这种情况下,当事件发生时。例如,在 this.Loaded 发生之后。)

所以我得到了UIElement(发件人),我可以从它的DataContext.

简而言之,如何获取绑定对象的属性名称。(绑定对象很容易找到,我只是DataContext用来获取客户,但是我在哪里可以得到属性的名称?在发件人的 xaml(例如名称)中)

(如果需要访问客户内部的“地址”,我计划使用反射)但是如何获取 textBox 中的文本绑定到的属性的“名称”。

4

2 回答 2

2

尝试以下操作:

给你TextBox的名字,这样你就可以从代码中访问它:

<Grid>
    <TextBox Name="textBox" Text="{Binding Adress}" />
</Grid>

在后面的代码中:

BindingExpression bExpr = textBox.GetBindingExpression(TextBox.TextProperty);

绑定属性的名称现在可以从以下位置提取为字符串:

bExpr.ParentBinding.Path.Path
于 2010-09-11T15:28:52.647 回答
0

但是,我建议不要这样做;尝试使用已建立的 MVVM 原则并在视图模型中而不是从视图中找出绑定值。如果您更清楚地说明您的问题,例如,如果列表中有多个客户并且您需要所选客户的地址,我们可能会提供进一步的帮助。

于 2010-09-12T21:00:51.263 回答