案例:
public class customer
{
public string Adress { get; set; }
}
的Xaml:
<Grid x:Name="LayoutRoot" Background="White" > <StackPanel> <TextBox Text="{Binding Adress}"/> </StackPanel> </Grid>
的.cs
public MainPage() { InitializeComponent(); LayoutRoot.DataContext = new customer() { Adress = "Some Adr" }; }
所以问题是在代码背后。如何获取绑定(Adress)的属性(字符串)。我需要它作为属性访问customer.adress,以分配另一个变量。 (在这种情况下,当事件发生时,例如在此之后发生。已加载。)
所以我得到了UIElement
(发件人),我可以将客户表格改为DataContext
。
简而言之,我如何获取绑定对象的属性名称。 (绑定对象很容易找到我只是使用DataContext
来获取客户,但我在哪里可以得到属性的名称?来自发件人的xaml(例如。name)
(我计划使用反射来访问客户内部的“地址”),但是如何获取textBox中文本所绑定的属性的“名称”。
答案 0 :(得分:2)
尝试以下方法:
为您的TextBox
命名,以便您可以从代码中访问它:
<Grid>
<TextBox Name="textBox" Text="{Binding Adress}" />
</Grid>
在代码背后:
BindingExpression bExpr = textBox.GetBindingExpression(TextBox.TextProperty);
绑定属性的名称现在可以从以下字符串中提取:
bExpr.ParentBinding.Path.Path
答案 1 :(得分:0)
但是,我会建议不要这样做;尝试使用已建立的MVVM原则,并在视图模型中而不是从视图中找出绑定值。如果您更清楚地说明问题,例如,如果列表中有多个客户,并且您需要所选客户的地址,我们可能会进一步提供帮助。