Связывающий стекпанель - PullRequest
0 голосов
/ 21 января 2012

Моя цель - чтобы весь верхний StackPanel (или какой-либо другой элемент) открывал веб-сайт, используя значение Url из возвращаемых данных XML. Мне было интересно, что будет лучшим способом для достижения этой цели?

Вот пример моего кода XAML:

<DataTemplate>
    <StackPanel> //bind Url here somehow
        <Image Source="{Binding Thumbnail}"></Image>
        <StackPanel>
            <TextBlock Text="{Binding Title}" TextWrapping="Wrap"/>
            <StackPanel>
                <TextBlock Text="{Binding Duration}"></TextBlock>
                <TextBlock Text="{Binding Stats}"></TextBlock>
            </StackPanel>
        </StackPanel>
    </StackPanel>
</DataTemplate>

Вот пример значений, которые возвращает мой код:

    public class XmlData
    {
        public string Id { get; set; }
        public string Title { get; set; }
        public string Url { get; set; }
        public string Thumbnail { get; set; }
        public string Stats { get; set; }
        public double Duration { get; set; }
    }

Примеры кода приветствуются. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 21 января 2012

XAML:

<DataTemplate>
<StackPanel MouseLeftButtonDown="StackPanelMouseLeftButtonDown" Tag="{Binding Url}">
        <Image Source="{Binding Thumbnail}"></Image>
        <StackPanel>
            <TextBlock Text="{Binding Title}" TextWrapping="Wrap"/>
            <StackPanel>
                <TextBlock Text="{Binding Duration}"></TextBlock>
                <TextBlock Text="{Binding Stats}"></TextBlock>
            </StackPanel>
        </StackPanel>
    </StackPanel>
</DataTemplate>

код позади:

private void StackPanelMouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
    var realSender = (StackPanel)sender;
    WebBrowserTask wbt = new WebBrowserTask();
    wbt.URL = (string)realSender.Tag;
    wbt.Show(); 
}
1 голос
/ 21 января 2012

Панель стека не может открыть сам URL, для этого вам понадобится WebBrowser элемент управления.

<DataTemplate>
    <StackPanel>
        <WebBrowser Source="{Binding Url}" />
        <Image Source="{Binding Thumbnail}"></Image>
        <StackPanel>
            <TextBlock Text="{Binding Title}" TextWrapping="Wrap"/>
            <StackPanel>
                <TextBlock Text="{Binding Duration}"></TextBlock>
                <TextBlock Text="{Binding Stats}"></TextBlock>
            </StackPanel>
        </StackPanel>
    </StackPanel>
</DataTemplate>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...