如何将属性绑定到xaml中的属性值

时间:2012-09-06 08:06:26

标签: c# wpf xaml data-binding

我有一个名为TextBoxColumn的自定义类作为Follows

public class TextBoxColumn : DataGridTemplateColumn
{
    public static readonly DependencyProperty FieldNameProperty = DependencyProperty.Register("FieldName", typeof(string), typeof(TextBoxColumn), new PropertyMetadata(""));
    public string FieldName
    {
        get { return (string)GetValue(FieldNameProperty); }
        set { SetValue(FieldNameProperty, value); }
    }
}

从XAML创建DataGrid列时:

<DataGrid>
    <DataGrid.Columns>
        <local:TextBoxControl FieldName="FirstName"/>
        <local:TextBoxControl FieldName="LastName"/>
    </DataGrid.Columns>
</DataGrid>

在XAML词典中,我为此TextBoxColumn定义了单元格模板:

<DataTemplate x:Key="TextBoxColumn_CellTemplate">
    <TextBox Text="{Binding FieldName}"/> <!-- Here is the problem, if I give FirstName instead of FieldName, it works fine -->
</DataTemplate>`

如何获取TextBoxColumn的FieldName属性的值并将其绑定到Text属性?如何在没有C#代码的情况下实现它?

2 个答案:

答案 0 :(得分:1)

为TextBoxColumn控件命名,并尝试按元素名称

绑定它的属性
<TextBox Text="{Binding ElementName=txtBoxCol, Path=FieldName}"></TextBox>

答案 1 :(得分:0)

如果没有代码,你就无法做到,没有办法绑定绑定的属性(在这种情况下,你希望Binding.Path成为FieldName的任何东西。