2

次のように TextBoxColumn というカスタムクラスがあります

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#コードなしでどうすれば達成できますか?

4

2 に答える 2

1

TextBoxColumn コントロールに名前を付け、そのプロパティを要素名でバインドしてみてください

<TextBox Text="{Binding ElementName=txtBoxCol, Path=FieldName}"></TextBox>
于 2012-09-06T08:11:23.337 に答える
0

コードなしで物事を行うことはできません。バインディングのプロパティをバインドする方法はありません(この場合は、何であれなりたいでしょうBinding.PathFieldName

于 2012-09-06T08:09:58.977 に答える