-1

我正在尝试将主窗口上的图像与一个字符串(存储在另一个类中)绑定,该字符串表示我要显示的图像的文件路径。

但是什么都没有出现。。

这是我的主窗口代码 xaml 代码:

<HierarchicalDataTemplate x:Key="categoryTemplate"
        ItemsSource="{Binding Path=Items}" 
        ItemTemplate="{StaticResource animalTemplate}">
        <Grid MouseEnter="DockPanel_MouseEnter" MouseLeave="DockPanel_MouseLeave">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="30" />
                <ColumnDefinition Width="16" />
            </Grid.ColumnDefinitions>

            <Image HorizontalAlignment="Center" Source="{Binding Path=IconFilePath}" VerticalAlignment="Center" Width="16" Height="16" Grid.Column="0" />
            <TextBlock Text="{Binding Path=Name}" Margin="5,0,0,0" FontWeight="Bold" FlowDirection="{Binding Path=FlowDirection}" FontSize="14" HorizontalAlignment="Stretch" Grid.Column="1" />
            <Border CornerRadius="2" Background="Lavender" Grid.Column="2" Margin="0,0,5,0">
                <TextBlock Text="30" Foreground="DodgerBlue" HorizontalAlignment="Center" FontWeight="Bold" FontSize="13" />
            </Border>
            <aea:MenuButton Margin="0,0,2,0" Opacity="0" HorizontalAlignment="Right" Grid.Column="3" SnapsToDevicePixels="False" Width="16" Height="16" DisplayStyle="Text" IsEnabled="True" IsDropDownOpen="False">
                <aea:SplitButtonItem IsSelected="True" Visibility="Collapsed">
                    <Image HorizontalAlignment="Center" Source="Assets\FeedMenu.png" VerticalAlignment="Center"/>
                </aea:SplitButtonItem>
                <aea:SplitButtonItem Tag="{Binding Path=me}" Selected="Subscription_MarkAllAsRead">Mark all as Read</aea:SplitButtonItem>
                <aea:SplitButtonItem Tag="{Binding Path=me}" Selected="Subscription_AddAllToFavorites">Add all to Favorites</aea:SplitButtonItem>
                <aea:SplitButtonItem Tag="{Binding Path=me}" Selected="Subscription_ReadAllLater">Read all Later</aea:SplitButtonItem>
                <aea:SplitButtonItem Tag="{Binding Path=me}" Selected="Subscription_OpenAllBrowser">Open all in browser</aea:SplitButtonItem>
            </aea:MenuButton>
        </Grid>

        <!--<TextBlock Text="{Binding Path=Name}" FontWeight="Bold"/>-->
    </HierarchicalDataTemplate>

这是我的另一堂课:

    public string IconFilePath { get; private set; }
    public Subscription()
    {
        this.IconFilePath = @"C:\Users\Din\Din\Programming\Webs\Ended Projects\CodeCaged\Products\Read 360\Read 360\Read 360\bin\Release\feeds\1.ico";
    }

先谢谢了,

丁。

4

2 回答 2

2

您是相对于的绑定,DataContext因此您需要确保它是该类的实例。还要检查绑定错误,这个小上下文就不多说了。

于 2012-08-18T16:31:26.550 回答
0

如果没有完整的代码清单来说明这个控件是如何设置的(例如,DataContext 在哪里以及如何设置?以及“项目”列表是如何填充的?)

但从表面上看,您似乎希望从 Items 元素中同时获得“Name”和“IconFilePath”,所以要确认 Subscription Class 定义了 IconFilePath 和 Name?

Snoop这样的工具可以在运行的应用程序可视树中自动显示绑定错误;我希望它在这种情况下列出这样的内容。

此外,为了减少可能的头痛(这很可能是问题所在),可能值得为您的数据类提及INotifyPropertyChanged。否则,您的数据类的属性更改不会自动传播。

于 2012-08-19T12:08:25.717 回答