我在WPF中有一个主窗口,它包含:
我已经成功实现了数据输入的选项卡控件和框架,但问题是我切换选项卡控件直到切换选项卡。我想在主窗口上有一个中央刷新按钮(我前面提到过)。 任何人都可以指导我如何做到这一点?
因为tab的当前对象类型只在运行时决定,所以它是多态吗?
答案 0 :(得分:3)
您可以为所有用户控件使用接口:
public interface IRefreshAble
{
void Refresh();
}
public interface ICanDeleteItem
{
void Delete(/*parameters omitted*/);
bool CanDelete { get; }
}
public interface IHoldATypedItem ///sorry for bad name
{
Type TheType { get; }
}
然后由usercontrols实现此接口:
public class TheUserControl : UserControl, IRefreshAble, ICanDeleteItem, IHoldATypedItem
{
public void Refresh()
{
//Your refreshcode
}
public bool CanDelete {get { /*code that indicates if an item can be deleted*/ } }
public void Delete(/*parameters ommited*/)
{
if(CanDelete)
{
//Delete Item
}
}
public Type TheType { get { return typeOf(Employee); } }
// otherstuff
}
现在,您可以将所有UserControl(例如)放入List< IRefreshAble>并做类似的事情:
foreach(IRefreshAble item in theList)
{
item.Refresh();
}
如果你有超过所有UserControl常见的Refresh()方法,你可以扩展这个成员的接口并获得你需要的多态性。