绑定到 wpf 中父元素的属性
Posted
技术标签:
【中文标题】绑定到 wpf 中父元素的属性【英文标题】:Bind to a property of a parent element in wpf 【发布时间】:2011-01-27 05:32:12 【问题描述】:'我想将 RichTextBox 的 Height 属性绑定到 GridView 的 Row 的 Height 属性。我怎样才能做到这一点?我不知道如何获取行的高度,因为我无法在 xaml 中访问我想做的行。
Ancestor 类型应该是 GridViewHeaderRow ,但我不知道它的级别...
编辑:
<my:RadGridView Height="524" RowHeight="300" ItemsSource="Binding Lessons" AutoGenerateColumns="False" Name="dataGrid1" VerticalAlignment="Top" SelectionMode="Single" CanUserSortColumns="False" IsFilteringAllowed="False">
<my:RadGridView.Columns>
<my:GridViewDataColumn DataMemberBinding="Binding SchoolclassName" Header="Schoolclass" Width="0.1*" />
<my:GridViewDataColumn DataMemberBinding="Binding SubjectName" Header="Subject" Width="0.1*" />
<my:GridViewDataColumn Width="0.3*" Header="Homework">
<my:GridViewDataColumn.CellTemplate>
<DataTemplate>
<RichTextBox Height="Binding ElementName=dataGrid1,Path=RowHeight" >
<FlowDocument>
<Paragraph>
<Run Text="Binding Homework"/>
</Paragraph>
</FlowDocument>
</RichTextBox>
</DataTemplate>
</my:GridViewDataColumn.CellTemplate>
<my:RadGridView Height="524" ItemsSource="Binding Lessons" AutoGenerateColumns="False" Name="dataGrid1" VerticalAlignment="Top" SelectionMode="Single" CanUserSortColumns="False" IsFilteringAllowed="False">
<my:RadGridView.Columns>
<my:GridViewDataColumn Name="ContentColumn" Width="0.3*" Header="Content">
<my:GridViewDataColumn.CellTemplate>
<DataTemplate>
<RichTextBox Height="Binding ElementName=MyRowNameToBindTo,Path=Height">
<FlowDocument>
<Paragraph>
<Run Text="Binding Content"/>
</Paragraph>
</FlowDocument>
</RichTextBox>
</DataTemplate>
</my:GridViewDataColumn.CellTemplate>
...
【问题讨论】:
【参考方案1】:我不了解您的 RadGridView。但我要尝试的第一件事是使用 RelativeSource Binding 和 FindAncestor 沿着可视化树向上走,直到找到 GridViewHeaderRow 并绑定到它的 Height 属性。
... Height="绑定高度, RelativeSource=RelativeSource 模式=FindAncestor, AncestorType=x:Type GridViewHeaderRow " ...您可能必须沿着树向上走才能找到 RadGridView,然后再向下走回到标题行。
... Height="绑定 HeaderRow.Height, RelativeSource=RelativeSource 模式=FindAncestor, AncestorType=x:Type RadGridView " ...或
... Height="绑定行[0].Height, RelativeSource=RelativeSource 模式=FindAncestor, AncestorType=x:Type RadGridView " ...取决于 RadGridView 的实现。
【讨论】:
我已经用更新的代码更改/编辑了 init 问题:为什么我会收到错误:以上是关于绑定到 wpf 中父元素的属性的主要内容,如果未能解决你的问题,请参考以下文章