我正在尝试绑定GridViewColumn
到带有参数的方法。
我当前的 XAML 如下所示:
<ListView Margin="10" ItemsSource="{DynamicResource RemoteAgents}" Name="lvRemoteAgents" DataContext="">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding Value.ID}" />
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Value.name}" />
<GridViewColumn Header="Type" DisplayMemberBinding="{Binding Value.type}" />
</GridView>
</ListView.View>
</ListView>
ID、名称和类型是 ItemSource 类的预定义属性。这些属性实际上是 JSON 结构的字段。因此,我不想绑定到属性,而是想通过字段名称访问 JSON 字段。在伪代码中,我看起来像这样:
<ListView Margin="10" ItemsSource="{DynamicResource RemoteAgents}" Name="lvRemoteAgents" DataContext="">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding Value.GetValue('ID')}" />
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Value.GetValue('name')}" />
<GridViewColumn Header="Type" DisplayMemberBinding="{Binding Value.GetValue('type')}" />
</GridView>
</ListView.View>
</ListView>
我将ObjectDataProvider定义为
<ObjectDataProvider x:Key="GetValue"
ObjectType="{x:Type local:RemoteAgent}"
MethodName="GetField">
<ObjectDataProvider.MethodParameters>
<system:String>empty</system:String>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
现在我绑定到OjbectDataProvider如下:
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding Source={StaticResource GetValue}, BindsDirectlyToSource=True, Mode=OneWayToSource}" />
我的问题是如何将参数传递给 GetValue 函数。