0

我试图在从我的列表框中选择项目期间从我的 TextBlock 获取文本。

这是我的 xaml 文件中列表框的代码..

<ListBox x:Name="listBox" Height="535" Margin="7,0,12,0" 
      SelectionChanged="selectedItem" 
      ItemsSource="{Binding}">

    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <toolkit:WrapPanel FlowDirection="LeftToRight" 
                ItemWidth="215" ItemHeight="215" />
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>

    <ListBox.ItemTemplate x:Uid="info">
        <DataTemplate>
            <StackPanel>
                <Border>
                    <Image HorizontalAlignment="Left" Margin="6,6,0,0" 
                        Name="image1" Stretch="Fill" 
                        VerticalAlignment="Top" 
                        Source="{Binding imageSource}" />
                </Border>
                <TextBlock x:Name="path" Foreground="Transparent" 
                    Text="{Binding imagePath}"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>

</ListBox>

对于我的 c# 代码,我正在使用将处理点击事件的 selectionChangedEvent 方法,但我无法弄清楚如何获取我的 TextBlock 元素的内容。

private void selectedItem(object sender, SelectionChangedEventArgs e)
{
    //I need to take the content of my textblock w/c carry the path for
    //my image to be use to share using ShareMediaTask.    
    //path = the content of my textblock

    var task = new ShareMediaTask();
    task.FilePath = path;
    task.Show();
}

我真的很感激任何帮助。

4

2 回答 2

0

如果它是从文本块发送的,那将是你的发件人......所以你可以做类似的事情

var text = ((TextBlock)sender).Text;

否则,您将不得不引用它绑定到的属性...
为什么,哦,为什么要命名您的文本块path?它会让每个人都感到困惑......打电话给它TextBlockPath,这样它就不会模棱两可了......

于 2013-11-14T03:05:11.307 回答
0

如果 imagePath 是一个类的属性,试试这个

var item = listBox.SelectedItem as className; // like ShareMediaTask

var task = new ShareMediaTask();
task.FilePath = item.imagePath;
task.Show();
于 2013-11-14T03:15:10.173 回答