【问题标题】:How to Bind DataGrid Header如何绑定 DataGrid 标头
【发布时间】:2012-09-23 19:33:34
【问题描述】:

无法绑定DataGridTextColumn.Header中的ComboBox
第一个独立的ComboBox 绑定很好。
字段只是Public List<String>

<StackPanel Orientation="Vertical">
    <ComboBox ItemsSource="{Binding Path=Fields}"/>
    <DataGrid ItemsSource="{Binding Path=MyRows}" AutoGenerateColumns="False" >
        <DataGrid.Columns>
            <DataGridTextColumn Width="80" Binding="{Binding Col1}">
                <DataGridTextColumn.Header>
                    <StackPanel>
                        <TextBlock Text="Header1" />
                        <ComboBox Width="60" ItemsSource="{Binding Path=Fields}" />
                    </StackPanel>
                </DataGridTextColumn.Header>
            </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>
</StackPanel>
private List<string> fields = new List<string> { "aa", "bb", "cc" };
public List<string> Fields { get { return fields; } }

甚至尝试将 Fields 设为 MyRow 的属性

【问题讨论】:

  • 我错了,显然 DataContext 没有按预期继承。彼得汉森的解决方法是要走的路。

标签: .net wpf datagrid


【解决方案1】:

如果您使用继承自 Window 的 DataGrid 上的 DataContext,它应该可以工作。

<ComboBox Width="60"
          ItemsSource="{Binding Path=DataContext.Fields, 
          RelativeSource={RelativeSource AncestorType=DataGrid}}" />

【讨论】:

  • 我曾经很接近。 ItemsSource 中没有 RealtiveSource。谢谢
猜你喜欢
  • 1970-01-01
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
  • 1970-01-01
  • 2015-01-02
  • 2011-12-25
相关资源
最近更新 更多