【问题标题】:Label is not updating as I am changing values标签没有更新,因为我正在更改值
【发布时间】:2014-04-25 03:24:32
【问题描述】:

我正在编写一个小程序来根据商品数量管理商店和价格。在期望功能中,我希望在标签中显示所有项目成本的总计。当我更改 qty 文本框中的值时,此标签会更新。 到目前为止,我已经完成了这段代码的编写,它运行良好,甚至变量中的值与我想要的完全相同,但问题是即使我在 qty 文本框中有空值,标签也不会更新。它一直显示以前的总数,直到我更改值为止,并且似乎卡在了上次更新的总数上。

namespace wpfTest
{

    public partial class MainWindow : Window
    {
        List<int> myList = new List<int>();
        int val1, val2;
        int total;

        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            qtyTxt1.IsEnabled = false;
            priceTxt1.IsEnabled = false;

            qtyTxt2.IsEnabled = false;
            priceTxt2.IsEnabled = false;
        }

        private void chk1_Click(object sender, RoutedEventArgs e)
        {
            if (chk1.IsChecked == true)
            {
                qtyTxt1.IsEnabled = true;
                priceTxt1.IsEnabled = true;
            }
            else
            {
                qtyTxt1.IsEnabled = false;
                priceTxt1.IsEnabled = false;

                qtyTxt1.Clear();
                priceTxt1.Text = "@50";
            }
        }

        private void chk2_Click(object sender, RoutedEventArgs e)
        {
            if (chk2.IsChecked == true)
            {
                qtyTxt2.IsEnabled = true;
                priceTxt2.IsEnabled = true;
            }
            else
            {
                qtyTxt2.IsEnabled = false;
                priceTxt2.IsEnabled = false;

                qtyTxt2.Clear();
                priceTxt2.Text = "@100";
            }
        }

        private void qtyTxt1_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (qtyTxt1.Text=="")
            {
                priceTxt1.Text = "@50";
                val1 = 0;
            }
            if (qtyTxt1.Text.Length > 0)
            {
                priceTxt1.Text = (Convert.ToInt32(qtyTxt1.Text) * 50).ToString();
                val1 = Convert.ToInt32(priceTxt1.Text);
                updateTotal();
            }
        }

        private void qtyTxt2_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (qtyTxt2.Text.Length == 0)
            {
                priceTxt2.Text = "@100";
                val2 = 0;
            }
            if (qtyTxt2.Text.Length > 0)
            {
                priceTxt2.Text = (Convert.ToInt32(qtyTxt2.Text) * 100).ToString();
                val2 = Convert.ToInt32(priceTxt2.Text);
                updateTotal();
            }
        }

        private void updateTotal()
        {

            lblTotal.Content = "";
            lblTotal.Content = (val1 + val2).ToString();

        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("Total : " + total + "\n" + "Val1 : " + val1 + "\n" + "Val2 : " + val2);
        }

    }
}

我还上传了我的 Microsoft OneDrive 帐户的屏幕截图,因为我在这里上传照片有限制。 :

http://1drv.ms/1lM0IdE

【问题讨论】:

  • 哪个文本框显示总计?为什么有“@”?尝试使您的代码简单并专注于您的问题。另外,您可以尝试在 CSDN 中询问。
  • 先生,总计出现在标签而不是文本框上。 @ 代表时间的价格。 @50 表示每 1 个数量的价格为 50。

标签: c# .net wpf wpf-controls


【解决方案1】:

分配给标签属性文本

试试这个

 lblTotal.Text = "";
 lblTotal.Text  = (val1 + val2).ToString();

【讨论】:

  • 先生,我正在 WPF 中设计,在这里我没有得到标签的“文本”属性。根据您的建议,我还尝试使用另一个文本框来显示 GrandTotal 值(通过文本属性)而不是标签,但它有同样的问题。
【解决方案2】:

第一个明显的问题是,您试图通过“内容”属性更改 UILabel 文本,除非您自己定义,否则该属性不存在。您应该使用“文本”属性。请参阅 Apple 文档:

https://developer.apple.com/library/ios/documentation/uikit/reference/UILabel_Class/Reference/UILabel.html

【讨论】:

  • 先生,我正在使用 WPF 设计程序,这里的标签类不提供文本属性,但这里我们有用于相同目的的内容属性。其次,根据您的建议,我也尝试使用另一个文本框来显示 GrandTotal 值而不是标签,但它有同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-15
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-15
  • 2016-11-27
  • 1970-01-01
相关资源
最近更新 更多