-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」の両方を取得することを期待しているように見えるので、サブスクリプション クラスが IconFilePath と Name の両方を定義していることを確認するには?

Snoopのようなツールは、実行中のアプリケーションのビジュアル ツリーにバインド エラーを自動的に表示できます。この場合、そのようなリストが表示されることを期待しています。

また、考えられる頭痛の種を減らすために (これが問題になる可能性があります) 、データ クラスのINotifyPropertyChangedについて言及する価値があるかもしれません。それ以外の場合、データ クラスのプロパティの変更は自動的に反映されません。

于 2012-08-19T12:08:25.717 に答える