4

在代码中,我成功地将列添加到列表视图。但我想将绑定添加到列而不是添加到列表视图。

拳头是 xaml 中的工作代码。

<GridViewColumn x:Name="colName" Header="Name" Width="130">
  <GridViewColumn.CellTemplate>
    <DataTemplate>
      <TextBlock Text="{Binding Path=Values, Converter={StaticResource LoadProfileConverter},ConverterParameter=active_total}"/>
    </DataTemplate>
  </GridViewColumn.CellTemplate>
</GridViewColumn>

后面的代码:

GridViewColumn column = new GridViewColumn();
column.Header = "Header";
column.Width = 130;                     

FrameworkElementFactory controlFactory = new FrameworkElementFactory(typeof(TextBlock));

var itemsBinding = new System.Windows.Data.Binding("Values")
{
    Converter = new LoadProfileConverter(),
    ConverterParameter = "active_total",
};

controlFactory.SetBinding(TextBox.TextProperty, itemsBinding);

DataTemplate template = new DataTemplate();
template.VisualTree = controlFactory;

column.CellTemplate = template;

LoadProfileGrid.Columns.Add(column);
4

2 回答 2

14
var itemsbinding = new Binding("Values")
            {
                Converter = new LoadProfileConverter(),
                ConverterParameter = key
            };

        controllerFactory.SetBinding(TextBox.TextProperty, itemsbinding);

使用上面的代码创建正确的绑定。

绑定对象上的大量额外属性可以帮助您。

于 2012-08-14T11:45:23.233 回答
0
 GridViewColumn column = new GridViewColumn();
                            column.Header = key;
                            column.Width = 130;                     

                            FrameworkElementFactory controlFactory = new FrameworkElementFactory(typeof(TextBlock));

                            var itemsBinding = new System.Windows.Data.Binding("Values")
                            {
                                Converter = new LoadProfileConverter(),
                                ConverterParameter = key

                            };                           

                            column.DisplayMemberBinding = itemsBinding;
                            LoadProfileGrid.Columns.Add(column);
于 2012-08-14T13:47:19.370 回答