WPF绑定到对象(非静态)方法

时间:2015-03-17 19:06:35

标签: c# wpf xaml data-binding

我正在尝试绑定到对象的实例方法,但我只能找到绑定到属性或静态方法的示例。这是我的代码的相关部分:

<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的对象。当我在常规代码中调用它时,Title显示并且getIdentifier方法有效。但在我的视图中,只显示标题,标识符列仍为空。

这是否可能,或者我是否必须将标识符写入模型的属性?

1 个答案:

答案 0 :(得分:1)

您当前绑定到identifier属性,该属性在列表项的DataContext对象中不存在。

将绑定Source对象设置为identifier资源键引用的ObjectDataProvider资源:

<TextBlock Text="{Binding Source={StaticResource identifier}}"/>