vovgou / loxodon-framework

An MVVM & Databinding framework that can use C# and Lua to develop games
MIT License
1.86k stars 363 forks source link

Lua View 的数据绑定失败问题 #19

Closed liangwt92 closed 3 years ago

liangwt92 commented 3 years ago
local DatabindingViewModel = class("DatabindingViewModel",ObservableObject)
function DatabindingViewModel:ctor(t)
    DatabindingViewModel.base(self).ctor(self,t)
    self.ViewModelName = "DatabindingViewModel"
end

function M:start()
    self.viewName = "DefaultViewName"

    self:BindingContext().DataContext = DatabindingViewModel()

    --进行数据绑定
    local bindingSet = self:CreateBindingSet();
    -- 下面这行绑定会报错。
    bindingSet:Bind():For("viewName"):To("ViewModelName"):OneWay()
    bindingSet:Build()
end
2020-08-07 15:35:47.330 [ERROR] BindingSetBase - Loxodon.Framework.Binding.Proxy.ProxyException: Unable to bind the "{binding viewName Path:ViewModelName Mode:OneWay }".An exception occurred while creating a proxy for the "viewName" property of class "LuaBehaviour". ---> System.MissingMemberException: Member 'Loxodon.Framework.Views.LuaBehaviour.viewName' not found.
  at Loxodon.Framework.Binding.Proxy.Targets.TargetProxyFactory.TryCreateProxy (System.Object target, Loxodon.Framework.Binding.BindingDescription description, Loxodon.Framework.Binding.Proxy.Targets.ITargetProxy& proxy) [0x00058] in C:\Projects\loxodon-framework-2.0.1-master\Loxodon.Framework - MVVM\Assets\LoxodonFramework\Runtime\Framework\Binding\Proxy\Targets\TargetProxyFactory.cs:71 
  at Loxodon.Framework.Binding.Proxy.Targets.TargetProxyFactory.CreateProxy (System.Object target, Loxodon.Framework.Binding.BindingDescription description) [0x00004] in C:\Projects\loxodon-framework-2.0.1-master\Loxodon.Framework - MVVM\Assets\LoxodonFramework\Runtime\Framework\Binding\Proxy\Targets\TargetProxyFactory.cs:42 
   --- End of inner exception stack trace ---
  at Loxodon.Framework.Binding.Builder.BindingBuilderBase.Build () [0x0003f] in C:\Projects\loxodon-framework-2.0.1-master\Loxodon.Framework - MVVM\Assets\LoxodonFramework\Runtime\Framework\Binding\Builder\BindingBuilderBase.cs:222 
  at Loxodon.Framework.Binding.Builder.BindingSetBase.Build () [0x0001a] in C:\Projects\loxodon-framework-2.0.1-master\Loxodon.Framework - MVVM\Assets\LoxodonFramework\Runtime\Framework\Binding\Builder\BindingSet.cs:50 
vovgou commented 3 years ago

已经添加这个功能