【问题标题】:UWP/C# How to Save a Comboboxitem Selection As a String In SqliteUWP/C#如何将Comboboxitem选择保存为Sqlite中的字符串
【发布时间】:2017-07-22 08:05:23
【问题描述】:

我已成功将列表设置为组合框的 ItemsSource,它显示了我期望的项目。还可以通过指定索引来设置默认的 SelectedItem。但是我在将所选项目保存到 Sqlite 中的字符串时遇到了麻烦。当显示保存的 Sqlite 值时,它只显示类名。我尝试只保存索引,稍后会显示正确的索引,所以我认为我得到了正确的项目,但当我保存实际项目时,它显然不是正确的内容。刚刚学习了几个星期...有人可以建议转换或其他方式吗?

XAML:

    <ComboBox x:Name="boxMethod"
              Header="Payment Method:"
              Width="200"
              SelectionChanged="boxMethod_SelectionChanged">
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding NickName}"/>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>

C# 主要:

    this.boxMethod.ItemsSource  = payMethod.GetPayMethods();

    transaction.PmtMethod       = Convert.ToString(boxMethod.SelectedValue);

C# 显示在别处:

    txtPmtMethod.Text   = Convert.ToString(selectedTransaction.PmtMethod);

【问题讨论】:

    标签: c# sqlite xaml combobox uwp


    【解决方案1】:

    如果您在 C# Main 的第二行进行调试,您会注意到 PmtMethod 是类名。 boxMethod.SelectedValue 是您的类的一个实例,如果您将其转换为字符串,您将获得类名。 您可以使用 (MyClass)boxMethod.SelectedValue 将其转换为您的类的实例,然后调用包含您要保存的值的属性。

    只是作为一个信息。您应该了解 MVVM。这是一种描述如何编写 WPF 应用程序的模式。

    【讨论】:

    • 谢谢。 PmtMethod 可能在上面突出显示为一个类,但它只是一个字符串字段。不确定您的额外信息是否适用,因为它不是课程。感谢帮助...
    • 这不是我试图解释的。我说的是boxMethod.SelectedValue。调试一下,看看这个有什么价值。这将是一个类的实例。如果你将一个类转换为一个字符串,你会得到默认的类名。
    猜你喜欢
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 2021-05-08
    相关资源
    最近更新 更多