加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从绑定的ListBox中获取所选项字符串

发布时间:2020-12-16 00:19:10 所属栏目:百科 来源:网络整理
导读:我在从列表框中的绑定文本块中获取字符串时遇到问题,当我使用下面的代码时,我可以绑定列表框,列表框中有项目显示,但是当列表中的项目被点击时我不会得到正确的字符串,我在消息框中打印一个带有对象名称的消息 “MyApp.Item” 而是显示出来. myApp是应用程序
我在从列表框中的绑定文本块中获取字符串时遇到问题,当我使用下面的代码时,我可以绑定列表框,列表框中有项目显示,但是当列表中的项目被点击时我不会得到正确的字符串,我在消息框中打印一个带有对象名称的消息

“MyApp.Item”

而是显示出来. myApp是应用程序的名称,Item是我绑定到列表框的模型的名称.当列表框没有绑定时,所选项目中的正确文本显示出来.

private void listBoxtrend_Tap(object sender,GestureEventArgs e)
{
    selectedText = "";

    selectedText = listBox.SelectedValue.ToString();

    MessageBox.Show(selectedText);
}

XML

<ListBox ItemsSource="{Binding Item}" Foreground="RoyalBlue" 
    Height="395" HorizontalAlignment="Center" 
    Margin="12,111,0" Name="listBox" 
    VerticalAlignment="Top" Width="438"
    TabIndex="10"  Tap="listBox_Tap" >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock TextWrapping="Wrap" FontSize="26" HorizontalAlignment="Left"
                Name="tblItem" Text="{Binding ItemString}"
                VerticalAlignment="Top" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

如果你能帮助我,我真的很感激

解决方法

您将绑定到DataTemplate的TextBlock中的ItemString和ListView中的Item Collection.因此,SelectedValue将是Item类型.您应该在Tap处理程序中实际执行类似的操作以获取ItemString的值…

private void listBoxtrend_Tap(object sender,GestureEventArgs e)
{
    selectedText = "";

    var selected = listBox.SelectedValue as Item;
    selectedText = selected.ItemString;

    MessageBox.Show(selectedText);
}

在您的示例中,ToString正在打印类的名称.您还可以在Item模型中覆盖ToString,使其成为您想要的字符串.

注意:类型等可能有点过时,我猜测你的问题中写的内容有点偏差.此外,无需将selectedText设置为只在上面第三行中覆盖的空字符串.我想保留它,以便您可以了解我在代码中更改的内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读