Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用c从windows phone应用程序的列表框中获取所选项目的值#_C#_Wpf - Fatal编程技术网

C# 如何使用c从windows phone应用程序的列表框中获取所选项目的值#

C# 如何使用c从windows phone应用程序的列表框中获取所选项目的值#,c#,wpf,C#,Wpf,我正在尝试从列表框中获取所选项目的值,并使用MessageBox.Show()显示该消息。 这是列表框的XAML代码 <ListBox x:Name="lbTodoList" Grid.Row="1" Width="350" Margin="100,0,0,0"> <ListBox.Background> <LinearGradientBrush EndPoint="0.5,1" StartP

我正在尝试从列表框中获取所选项目的值,并使用MessageBox.Show()显示该消息。 这是列表框的XAML代码

<ListBox x:Name="lbTodoList" Grid.Row="1"  Width="350" Margin="100,0,0,0">
                <ListBox.Background>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FF060000" Offset="0"/>

                    </LinearGradientBrush>
                </ListBox.Background>
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock x:Name="Listbox" Grid.Row="1" Text="{Binding salutationName}" />
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

但问题不是显示所选项目,而是显示projectName.ClassName

一个简单的修复方法是覆盖UserData的字符串,以提供您所期望的内容

public class UserData
{
    ...

    public override string ToString()
    {
         return this.somevalue;
    }
}

使用调试器并在运行时检查
。SelectedItem
——您会发现它有一个具有所需值的属性。您当前的代码将对象本身转换为字符串,而不是您期望的属性值。@TejasJain这只是一个简单的修复。更好的方法是研究绑定如何工作并利用它(首选MVVM体系结构)。这样,您就可以使用数据模板/转换器,并将关注点分开。另外,如果这已经解决了您的问题,请用接受的答案标记。@D Hansen谢谢您提供的信息,我将继续研究,您对MVVM的看法。@TejasJain一个很好的起点是:它很好地介绍了MVVM,并使用测试驱动的方法进行了全面的开发。
 string text = lbTodoList.SelectedItem.ToString();

        MessageBox.Show(text);
public class UserData
{
    ...

    public override string ToString()
    {
         return this.somevalue;
    }
}