0

Windows 8 のコード サンプル、つまり BlogReader アプリをいじってみました。これに慣れていない場合は、2 つの列を持つグリッドで構成されています。左側は、フィード アイテムのタイトルを含む ListView です。クリックすると、右側の列の WebView にフィード エントリが入力されます。

右側に表示するのではなく、Google リーダーのように (基本的にはアコーディオン ビュー)、関連するリスト アイテムのすぐ下に WebView を埋め込みたいと考えています。これが私が思いついたものです。

      <ListView x:Name="ItemListView"  
            ItemsSource="{Binding Items}"
            Margin="60,0,0,10"
            SelectionChanged="ItemListView_SelectionChanged">

            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                        <TextBlock Text="{Binding Title}"  
                       FontSize="24" Margin="5,0,0,0" TextWrapping="Wrap" />
                        <TextBlock Text="{Binding Author}" 
                       FontSize="16" Margin="15,0,0,0"/>
                        <TextBlock Text="{Binding Path=PubDate, Converter={StaticResource dateConverter}}" 
                       FontSize="16" Margin="15,0,0,0"/>
                        <WebView Margin="0,5,20,20"/>
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>

        </ListView>

ListItem 内で WebView にアクセスするにはどうすればよいですか? レンダリング後にテンプレートにアクセスできないことは理解していますが、ListItem 内でその WebView にアクセスする方法が必要ですか? それとも、作成されたことがないだけですか?

listView の選択された項目にアクセスし、成功しなかった子を探すさまざまな方法を試しました

4

1 に答える 1

0

Web ビューを挿入する代わりに、使用する準備が整うまでVisibility、単に のWebviewをに設定する方が簡単です。Collapsedあなたがバインドされている各アイテムにListViewは、2 つのプロパティがあります。1 つは webview のコンテンツであり、もう 1 つは webview の可視性にバインドされています。そうすれば、 content プロパティの値を変更して webview のコンテンツを設定し、その可視性を に変更するだけVisibleです。

このようなもの:

public class Item
{
    Uri content;
    public Uri Content
    {
        get
        {
            return content;
        }
    }
    public Visibility Visible
    {
        get
        {
            if(content != null)
                return Visibility.Visible;
        }
    }
}

<WebView Content="{Binding Content}" Visibility="{Binding Visible}" Margin="0,5,20,20"/>
于 2012-09-19T16:16:12.883 に答える