我正在创建WPF应用程序。我需要在一个方法中的某个变量中存储临时值,我需要在另一个方法中返回该值。有没有办法使用WPF将临时值存储在变量中?
来自评论:
private void Button_Click(object sender, RoutedEventArgs e)
{
count++;
for (int i = 1; i <= count; i++)
{
var tb = new TextBox();
mycanvas.Children.Add(tb);
tb.Name = "txtbox"+i;
tb.Width = 100;
Canvas.SetLeft(tb,50);
Canvas.SetTop(tb, i*20);
}
}
答案 0 :(得分:1)
我认为你在这里有一点误会...... WPF(Windows Presentation Foundation),是一种替代WinForms的技术......
存储临时整数将完全像在WinForms,控制台应用程序或dll中完成。
您将其保存为另一种方法可以看到的变量(取决于它的位置),或将其作为参数发送。
如果您正在谈论MVVM,事情会变得更有趣,但您仍然可以存储和发送临时变量......
话虽如此,您还可以隐藏应用程序设置中的变量,并根据需要使用它们(或您可以设置的默认值)。以下是有关此选项的更多信息:MSDN: Application Settings Overview
如果你想在每个i
上做一些事情,那么 Jossef Harush 就是钱,否则(或者你也可以做以下事情:
private int global_variable_name;
private void Button_Click(object sender, RoutedEventArgs e)
{
count++;
for (int i = 1; i <= count; i++)
{
var tb = new TextBox();
mycanvas.Children.Add(tb);
tb.Name = "txtbox"+i;
tb.Width = 100;
Canvas.SetLeft(tb,50);
Canvas.SetTop(tb, i*20);
// You can set global_variable_name here, but it'll be
// silly to set it to `i`, since it's changing
global_variable_name = 8;
}
}
private void SomeOtherMethod() {
// you can use global_variable_name here
var sum = global_variable_name + 3;
}
答案 1 :(得分:0)
欢迎来到StackOverflow,我同意@Noctis的答案。
另外(在阅读你的评论后),
如果您想将当前循环索引传递给自定义方法,那么您应该这样做:
private void Button_Click(object sender, RoutedEventArgs e)
{
int count = 10;
count++;
for (int i = 1; i <= count; i++)
{
var tb = new TextBox();
mycanvas.Children.Add(tb);
tb.Name = "txtbox" + i;
tb.Width = 100;
Canvas.SetLeft(tb, 50);
Canvas.SetTop(tb, i * 20);
// My custom method
MyMethod(i);
}
}
private void MyMethod(int i)
{
// Do something with i
Console.WriteLine(i);
}