所以我有一个 View ,包含一个 telerik RadGridView,这个 View 绑定(bind)到几个项目,但重要的是我需要将一个项目在一列中的可见性绑定(bind)到 2 个项目。
转换器将正确评估可见性,但是我需要传回 previousProc(当前已处理)以及也是一个过程的“This”,只是那一行。
<telerik:RadGridView Name="ProcedureGrid"
DockPanel.Dock="Left"
SelectionMode="Single"
SelectionUnit="FullRow"
ItemsSource="{Binding Procedures}"
IsReadOnly="True"
AutoGenerateColumns="False"
ShowGroupPanel="False"
ShowColumnHeaders="False"
CanUserReorderColumns ="False"
RowIndicatorVisibility="Collapsed"
Visibility="Collapsed"
Width="200"
FontSize="18"
SelectionChanged="ProcedureGrid_SelectionChanged"
>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Name"
AllowDrop="False"
DataMemberBinding="{Binding Converter={StaticResource langConverter}}"
IsGroupable="False"
IsFilterable="False"
MaxWidth="155"/>
<telerik:GridViewColumn>
<telerik:GridViewColumn.CellTemplate>
<DataTemplate>
<nav:SmallForwardNavigateIcon MaxWidth="30" DockPanel.Dock="Right" Margin="1"
Cursor="Hand" VerticalAlignment="Center" HorizontalAlignment="Center"
MouseDown="SmallForwardNavigateIcon_MouseDown"
Visibility="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}},
Path=DataContext.previousProc,
Converter={StaticResource IsPrevProc}}" />
</DataTemplate>
</telerik:GridViewColumn.CellTemplate>
</telerik:GridViewColumn>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
谁能看到我哪里出错了,我能做些什么来修复 xaml 以将 previousproc 和 This 传回
最佳答案
如果我了解您的 UserControl 托管一个 telerik:RadGridView 控件。
您的 UserControl 有一个给定的 DataContext,它似乎包含一个属性 Procedures 和一个属性 IsPrevProc。
Visibility="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}},Path=DataContext.previousProc,Converter={StaticResource IsPrevProc}}" />
这段代码似乎是错误的,因为你写了:
Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}
这意味着您正在寻找您的祖先 DataContext 中的属性,即包含 Procedures 和 IsPrevProc 的属性。因此,此处的所有绑定(bind)都必须具有此 DataContext 的属性。您不能将一个绑定(bind)调用混入不同的 DataContext。
您可以做的是创建您的“previousProc”作为此 DataContext 中的一个属性,以便您可以直接调用它。
或者您可以将“IsPrevProc”定义为 Grid 一行的 DataContext 的属性。
但您不能在同一个绑定(bind)中同时执行这两项操作。
关于c# - 如何将当前行 "This"作为转换器参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35558196/