C# “我的代码未在中运行”;顺序;
我在我的项目中使用API(C# “我的代码未在中运行”;顺序;,c#,windows-phone,C#,Windows Phone,我在我的项目中使用API(Coding4Fun.Toolkit)来显示包含文本框的messageBox。因此,当我调用MessagePromptcode时,它没有在正确的时间运行 private void holdListAdd(object sender, System.Windows.Input.GestureEventArgs) { var dc = ((FrameworkElement)sender).DataContext; Fields fi = (Fields)dc
Coding4Fun.Toolkit
)来显示包含文本框的messageBox。因此,当我调用MessagePrompt
code时,它没有在正确的时间运行
private void holdListAdd(object sender, System.Windows.Input.GestureEventArgs)
{
var dc = ((FrameworkElement)sender).DataContext;
Fields fi = (Fields)dc;
if (List2.Items.Contains(fi))
{
MessageBox.Show("Esse item já foi adicionado!");
}
else
{
MessagePrompt messagePrompt = new MessagePrompt();
messagePrompt.Body = new BodyUserControl();
messagePrompt.Show();
IsolatedStorageSettings iso = IsolatedStorageSettings.ApplicationSettings;
if (iso.TryGetValue<string>("isoQuantity", out retornaNome))
{
qtd = retornaNome;
}
fi.Quantity = qtd;
List2.Items.Add(fi);
MessageBox.Show("Item Adicionado com sucesso!");
}
BodyUserControl.cs:
public partial class BodyUserControl : PhoneApplicationPage
{
public BodyUserControl()
{
InitializeComponent();
}
private void addQuantity_Click(object sender, RoutedEventArgs e)
{
IsolatedStorageSettings iso = IsolatedStorageSettings.ApplicationSettings;
{
if (iso.Contains("isoQuantity"))
{
iso["isoQuantity"] = Quantity.Text;
}
else
{
iso.Add("isoQuantity", Quantity.Text);
}
}
}
这是因为当显示
MessagePrompt
时,代码仍在继续。如果要在MessagePrompt
完成后执行某些操作,则必须将事件处理程序分配到MessagePrompt.completed
。差不多
messagePrompt.Completed += messagePrompt_Completed;
messagePrompt.Show();
void messagePrompt_Completed(object sender, PopUpEventArgs<object, PopUpResult> e)
{
IsolatedStorageSettings iso = IsolatedStorageSettings.ApplicationSettings;
if (iso.TryGetValue<string>("isoQuantity", out retornaNome))
{
qtd = retornaNome;
}
fi.Quantity = qtd;
List2.Items.Add(fi);
MessageBox.Show("Item Adicionado com sucesso!");
};
messagePrompt.Completed+=messagePrompt\u Completed;
messagePrompt.Show();
void messagePrompt_已完成(对象发送方,PopUpEventArgs e)
{
隔离存储设置iso=隔离存储设置。应用设置;
if(iso.TryGetValue(“isoQuantity”,out-nanome))
{
qtd=纳米组;
}
fi.数量=qtd;
清单2.项目。添加(fi);
Show(“项目Adicionado com successo!”);
};
您能解释一下“之前运行”吗?您面临的问题是什么?我需要从ListBox1
添加一个产品到ListBox2
。MessagePrompt
应请求项目数量。我的问题是:项目是在请求数量之前添加的。ans是正确的,请使用这种方式。我按照您的建议做了,但此问题显示:“messagePrompt\u Completed”与“delegate”系统没有重载。EventHandler“请使用新代码更新问题。”。很难说是哪里出了问题。顺便说一句,我说:像。。。如果没有进一步的修改,我的代码将无法工作。尤其是fi.Quantity
是有问题的,因为fi
不在事件处理程序的范围内声明。但我想你可以自己解决。
messagePrompt.Completed += messagePrompt_Completed;
messagePrompt.Show();
void messagePrompt_Completed(object sender, PopUpEventArgs<object, PopUpResult> e)
{
IsolatedStorageSettings iso = IsolatedStorageSettings.ApplicationSettings;
if (iso.TryGetValue<string>("isoQuantity", out retornaNome))
{
qtd = retornaNome;
}
fi.Quantity = qtd;
List2.Items.Add(fi);
MessageBox.Show("Item Adicionado com sucesso!");
};