我遇到了一个问题,我似乎无法从我的ViewModel中绑定一个值。代码是这样的......
<telerik:RadGridView
...
DataContext = "{Binding thisViewModel}"
ItemSource = "{Binding item1}"
... >
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn
....
DataMemberBinding = "{Binding insideItem1}">
<telerik:GridViewDataColumn.Header>
<Run Text = "{Binding Path = DataContext.item2,
RelativeSource = {RelativeSource Mode=FindAncestor,
AncestorType="{x:Type telerik:RadGridView"},
AncestorLevel = 1}}"/>
.....
</<telerik:GridViewDataColumn>
具有绑定问题的是&#34;运行文字&#34; 部分中的 item2 。 item2 是 thisViewModel 中的另一个属性,就像 item1 一样。任何人都可以在这件事上启发我吗?提前谢谢你:)
答案 0 :(得分:0)
我建议您将ViewModel定义为StaticResource,然后以这种方式绑定它:
<Run Text = "{Binding Path=DataContext.item2 Source={StaticResource MyDataContext}}"/>
希望它有所帮助!祝你有美好的一天!
答案 1 :(得分:0)
你有一个缺少逗号和一些不必要的(并且有点混乱)的引号。另外,Run元素不能像我理解的那样单独使用,但应该包含在TextBlock或FlowDocument中的Paragraph之类的内容中。您的代码的更正版本是
<TextBlock>
<Run Text="{Binding Path=DataContext.item2,
Mode=OneWay,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type telerik:RadGridView},
AncestorLevel=1}}"/>
</TextBlock>
如果您不需要专门针对“运行”功能,则可以单独使用TextBlock
<TextBlock Text="{Binding Path=DataContext.item2,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type telerik:RadGridView},
AncestorLevel=1}}"/>
如果适用于您的布局,则稍微简单的替代方法是
<TextBlock Text="{Binding Path=DataContext.item2,
RelativeSource={RelativeSource AncestorType={x:Type telerik:RadGridView}}}"/>