【问题标题】:Displaying a "Score Board" in windows phone在 windows phone 中显示“记分板”
【发布时间】:2013-08-11 23:17:40
【问题描述】:

我正在为 windows phone 8 制作一个应用程序,允许用户添加鱼类型和角度。然后他们从列表选择器中选择他们想要增加的一个,然后可以单击并添加或减去按钮来增加它的值。类型存储在字典中。我正在尝试创建一个按降序列出鱼和/或角度的摘要页面。我尝试过的一切都只是显示重复的数据。 例如鱼的类型是walleye,用户点击+ 3次显示

Walleye1

Walleye2

Walleye3

不仅仅是

Walleye3

这是我目前的代码

    Dictionary<string, int> FishListDic = new Dictionary<string,int>();
    Dictionary<string, int> AngularListDic = new Dictionary<string,int>();
    StringBuilder longlines = new StringBuilder();

private void FishAdd_Click(object sender, RoutedEventArgs e)
    {
        if (FishListDic.ContainsKey(FishName.Text))
        {
            MessageBox.Show("Fish is already in the list");
        }
        else
        {
            FishListDic.Add(FishName.Text, 0);
            Dictionary<string, int>.KeyCollection keyColl = FishListDic.Keys;
            FishList.Items.Clear();
            foreach (string s in keyColl)
            {                    
                FishList.Items.Add(s);
            }
        }
    }

    private void FishIncrement_Click(object sender, RoutedEventArgs e)
    {

        string tempfishname;

        tempfishname = FishList.SelectedItem.ToString();
       // FishListDic[tempfishname] = ;
        int temp = fishcount;

        if (!FishListDic.ContainsKey(FishList.SelectedItem.ToString()))
        {
            FishListDic.Add(FishList.SelectedItem.ToString(), 0);
        }
        FishListDic[FishList.SelectedItem.ToString()]++;
        foreach (KeyValuePair<string, int> kvp in FishListDic)
        {   
            longlines.Append(kvp.Key.ToString() + kvp.Value.ToString() + '\n');
        }
        Summary_Fish.Text = longlines.ToString();
    }

我很确定问题出在 stringbuilder 附加但我现在想不出任何其他选项。我也在尝试将它添加到数据透视页面上的文本块中。上面的代码只处理鱼类型,所以我只是重复 angulars

【问题讨论】:

    标签: c# windows xaml windows-phone-8 windows-phone


    【解决方案1】:

    你有这样的结果是因为:

    foreach (KeyValuePair<string, int> kvp in FishListDic)
    {   
         longlines.Append(kvp.Key.ToString() + kvp.Value.ToString() + '\n');
    }
    

    例如:

    让我们一步一步看一下你的字符串的变化: - 字符串.空

    • Walleye1

    • Walleye1 大眼2

    等等..

    你正在积累longlines,但你为什么需要它?

    longlines 移动到函数FishIncrement_Click 的主体。所以每次鱼增加时它都会是一个新的 StringBuilder。

    p.s.:就两句,说不定对你有用:

    1. 如果将FishList.SelectedItem.ToString() 替换为tempfishname,您的代码会变得更加清晰。
    2. 如果您想为您的 stringBuilder 添加新行,您可以使用AppendLine 方法。

    【讨论】:

    • 我昨晚躺在床上想着这个解决方案。非常感谢你让我相信我并没有发疯,而且它奏效了。使用变量的好处是我把它放在了那里,但由于某种原因把它拿出来,以为我搞砸了另一部分。
    猜你喜欢
    • 1970-01-01
    • 2016-01-07
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多