【问题标题】:wpf binding code behindwpf绑定代码在后面
【发布时间】:2012-08-14 11:36:11
【问题描述】:

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

fist 是 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);

【问题讨论】:

标签: c# wpf binding


【解决方案1】:
var itemsbinding = new Binding("Values")
            {
                Converter = new LoadProfileConverter(),
                ConverterParameter = key
            };

        controllerFactory.SetBinding(TextBox.TextProperty, itemsbinding);

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

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

【讨论】:

  • 看起来不错,当我看到我认为这是我需要的,但不起作用:(
  • stackoverflow.com/questions/356144/… 尝试阅读该问题。快速浏览一下,您的答案可能就在那里。
  • 这里他们使用 DisplayMemberBinding ,我只是检查一下不工作了
  • 不,没有错误,只是在那个 culumns 中没有数据,并且在我在 xaml 中编写绑定的列中 - 存在数据。
  • 你能在你的转换器中调试,看看它们是否输入了正确的值吗?
【解决方案2】:
 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);

【讨论】:

    猜你喜欢
    • 2018-11-24
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多