我正在尝试使用lambda函数动态地将动作处理程序绑定到UWP中的单选按钮:
private void populateMenu(ListBar lb)
{
foreach (var item in lb.Groups)
{
leftMenuStackBar.Children.Add(ListBar.rbGrp(item));
foreach (var LItem in item.Items)
{
var radioButton = ListBar.rb(LItem);
radioButton.Click += (o, i) =>
{
loadFromMenuClick(LItem.Transl, frame);
};
leftMenuStackBar.Children.Add(radioButton);
}
}
编译器说函数“loadFromMenuclick”必须是静态的。在这个函数中我想使用Frame.Navigate函数:
public void loadFromMenuClick(string test, Frame f)
{
Frame.Navigate(typeof(Themes.AbstractView), test);
}
我给它了“Frame f”对象,因为我之前有过这个错误,但是导航功能的工作方式,最好使用静态Frame.Navigate而不是f.Navigate。
当我尝试使用Frame.Navigate时,我得到“非静态字段,方法或属性'对象引用'Frame.Navigate(Type,object)'”错误...
如何让它发挥作用?
答案 0 :(得分:0)
问题在于你的测试"串。在调用事件处理程序时,没有LItem.Transl
的引用。由于我们不知道该项目中的内容以及它与RadioButton
的关联方式,因此我会假设字符串值{{{I}}继续我的回复。 1}}也存储在LItem.Transl
的{{1}}属性中。这是您附加eventhandler的循环代码
Tag
您的功能将是:
RadioButton