默认属性列表是在步骤期间设置的- 在期间BindingBuilder
调用Setup
InitializeLastStep()
该列表由一个单例对象维护,该对象实现IMvxBindingNameRegistry
public interface IMvxBindingNameRegistry
{
void AddOrOverwrite(Type type, string name);
void AddOrOverwrite<T>(Expression<Func<T, object>> nameExpression);
}
要将您自己的属性添加到此列表中,您可以获取对此实现的引用。两种简单的方法是:
在设置中,您可以覆盖FillBindingNames
:
protected virtual void FillBindingNames(IMvxBindingNameRegistry registry)
{
base.FillBindingNames(registry);
registry.AddOrOverwrite(typeof(MyControl), "MyDefaultProperty");
}
或在任何代码中(最好在 UI 或设置线程上运行),您可以向 IoC 容器注册为:
Mvx.CallbackWhenRegistered<IMvxBindingNameRegistry>(registry =>
{
registry.AddOrOverwrite(typeof(MyControl), "MyDefaultProperty");
});