WPF 绑定到 object(非静态)方法
WPF Bind to object (non static) method
我正在尝试绑定到 object 的实例方法,但我只能找到绑定到属性或静态方法的示例。这是我的代码的相关部分:
<Window.Resources>
<ObjectDataProvider x:Key="identifier" MethodName="getIdentifier" ObjectType="{x:Type self:PartModel}" />
</Window.Resources>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Margin="0,0,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20" />
<ColumnDefinition Width="80"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding identifier}" Grid.Column="0" />
<TextBlock Text="{Binding Title}" Grid.Column="1" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
PartModel
是我用来填充 ItemsControl 的 object。当我在我的常规代码中调用它时,Title
出现并且 getIdentifier
方法起作用。但在我的视图中,只有标题显示,标识符列仍为空。
这甚至可能吗,还是我必须将标识符写入模型的 属性?
您当前正在绑定到一个 identifier
属性,它在您的列表项的 DataContext 对象上不存在。
改为将绑定 Source
对象设置为 identifier
资源键引用的 ObjectDataProvider 资源:
<TextBlock Text="{Binding Source={StaticResource identifier}}"/>
我正在尝试绑定到 object 的实例方法,但我只能找到绑定到属性或静态方法的示例。这是我的代码的相关部分:
<Window.Resources>
<ObjectDataProvider x:Key="identifier" MethodName="getIdentifier" ObjectType="{x:Type self:PartModel}" />
</Window.Resources>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Margin="0,0,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20" />
<ColumnDefinition Width="80"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding identifier}" Grid.Column="0" />
<TextBlock Text="{Binding Title}" Grid.Column="1" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
PartModel
是我用来填充 ItemsControl 的 object。当我在我的常规代码中调用它时,Title
出现并且 getIdentifier
方法起作用。但在我的视图中,只有标题显示,标识符列仍为空。
这甚至可能吗,还是我必须将标识符写入模型的 属性?
您当前正在绑定到一个 identifier
属性,它在您的列表项的 DataContext 对象上不存在。
改为将绑定 Source
对象设置为 identifier
资源键引用的 ObjectDataProvider 资源:
<TextBlock Text="{Binding Source={StaticResource identifier}}"/>