0

我有一个图像列表及其各自的链接。我的页面上加载的所有内容都可以正常工作,但需要获取存储库中的页面链接“标记”列表框中的每个文本块。请参阅下面的代码以更好地理解。

<TextBlock Tag="{Binding Path=Url}" HorizontalAlignment="Center" Text="{Binding Path=Titulo}" FontSize="20" Foreground="#FF159DDE" TextWrapping="Wrap" /> //Works Fine

在 SelectionChanged 方法中,我需要在此标记中获取此 URL,为他寻找所选文本块的 url 的每个选择进行强制转换。

到目前为止,我的代码是这样的,但他正在寻找一个属性空对象:

 private void listBoxPopular_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        int aux = 0;
        var app = (Application.Current as App);

        TextBlock txt = listBoxPopular.SelectedItem as TextBlock;            
        if (txt != null)
              app.URI = (txt.Tag ?? String.Empty).ToString();     //app.URI is a global string
        ApplicationBarra(aux);
        ApplicationBar.Mode = ApplicationBarMode.Default;
    }
4

1 回答 1

1

SelectedItem不是 type TextBlock,而是 List 中项目的ItemsSource类型,这是包含UrlTitulo属性的类型。

private void listBoxPopular_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    int aux = 0;
    var app = (Application.Current as App);

    var selectedViewModel = listBoxPopular.SelectedItem as PopularVideos; 

    if (selectedViewModel != null)
          app.URI = selectedViewModel.Url ?? String.Empty;     

    ApplicationBarra(aux);
    ApplicationBar.Mode = ApplicationBarMode.Default;
}

我建议SelectedItem在使用它之前检查 null 。您可以使用 EventArgs 代替listBoxPopular并使方法静态。不过,基本上是风格问题..

于 2013-07-31T09:06:23.453 回答