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}}"/>