0
我正在创建自定义对话框类。它在构造函数中使用OptionObject对象的列表。在某个点它显示并取决于用户单击哪个选项执行注入到OptionObject的操作。通过作为参数传递的委托操作对象的字段
public class OptionObject
{
public object Id { get; set; }
public string Text { get; set; }
public Action Action { get; set; }
public OptionObject(object id, string text, Action action)
{
this.Id = id;
this.Text = text;
this.Action = action;
}
}
这是行动是如何被调用DialogWindow:
this.Options.Tap += (sender, args) => // Options is a ListBox
{
var o = sender as ListBox;
var x = o.SelectedItem as OptionObject;
if(x!=null)
x.Action();
this.IsOpen = false;
};
最后我想用我的另一页上的对话框:
foreach (var o in eventsOnDate)
{
chooseEventDialogWindow.Data.OptionsList.Add(new OptionObject(o.Text,()=> /*### don't know what to put in here ###*/));
}
的问题是,OptionObject .Action有时需要OptionObject.Id属性。我怎样才能在上面狙击的权利访问它?
编辑
我不希望任何参数传递到这个lambda表达式,如果有可能,因为有时没有必要为这个ID。如果这是正确的选择,可选参数将会很好。
PS
这并不重要,但问题来避免这种对话是基于Telerik的RadWindow不必要的讨论。
'Action'会起作用吗?然后'x.Action(x)'。 –
2012-08-12 22:04:10