M_K*_*M_K 3 c# xaml windows-phone-7
我在从列表框中的绑定文本块中获取字符串时遇到问题,当我使用下面的代码时,我可以绑定列表框,列表框中有项目显示,但是当列表中的项目被点击时我不会得到正确的字符串,我在消息框中打印一个带有对象名称的消息
"MyApp.Item"
而是显示出来.myApp是应用程序的名称,Item是我绑定到列表框的模型的名称.当列表框没有绑定时,所选项目中的正确文本显示出来.
private void listBoxtrend_Tap(object sender, GestureEventArgs e)
{
selectedText = "";
selectedText = listBox.SelectedValue.ToString();
MessageBox.Show(selectedText);
}
Run Code Online (Sandbox Code Playgroud)
XML
<ListBox ItemsSource="{Binding Item}" Foreground="RoyalBlue"
Height="395" HorizontalAlignment="Center"
Margin="12,111,0,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>
Run Code Online (Sandbox Code Playgroud)
如果你能帮助我,我真的很感激
您将绑定到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);
}
Run Code Online (Sandbox Code Playgroud)
在您的示例中,ToString正在打印类的名称.您还可以在Item模型中覆盖ToString,使其成为您想要的字符串.
注意:类型等可能有点过时,我猜测你的问题中写的内容有点偏差.此外,无需将selectedText设置为只在上面第三行中覆盖的空字符串.我想保留它,以便您可以了解我在代码中更改的内容.
| 归档时间: |
|
| 查看次数: |
18039 次 |
| 最近记录: |