我有一个奇怪的行为,使用ObjectDataProvider
. 我需要绑定一个TextBlock
withToString
方法,但是当我输入方法时,我的属性是错误的。
这是我的简单ObjectDataProvider
:
<Window.Resources>
<ObjectDataProvider x:Key="ToString" MethodName="ToString" ObjectType="{x:Type entities:Season}" />
</Window.Resources>
这是我的ListView
:
<ListView Grid.Row="2" Name="lvSeasons" HorizontalContentAlignment="Stretch">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="30" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Source={StaticResource ToString}}" VerticalAlignment="Center" />
<Button Grid.Column="1" VerticalAlignment="Center" Background="Transparent" BorderBrush="Transparent" Click="btDeleteSeason_Click">
<TextBlock FontFamily="{StaticResource FontAwesome}" Text="" FontSize="20" Foreground="Red" HorizontalAlignment="Center" />
</Button>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我的方法只是连接两个属性:
public override string ToString()
{
return StartYear + "/" + EndYear;
}
在调试中,我可以看到开始和结束年份始终为 0。如果我绑定我的TextBlock
使用{Binding StartYear}
它是正确的并且值为 2019。
问题可能出在哪里?