2011-06-09 103 views
2

我,访问的Silverlight的ObservableCollection在JavaScript算,但我得到了下面的错误,的Javascript观察集合数

Microsoft JScript runtime error: System.FormatException: Input string was not in a correct format. 
    at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) 
    at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 
    at System.String.System.IConvertible.ToInt32(IFormatProvider provider) 
    at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) 
    at System.Windows.Hosting.ScriptingInterface.GetScriptParamValueForType(ScriptParam scriptParam, Type desiredType) 
    at System.Windows.Hosting.ScriptingInterface.ConvertFromScriptParams(Type[] desiredTypes, ScriptParam[] args) 
    at System.Windows.Browser.ManagedObjectInfo.ListIndexerMember.Invoke(ManagedObject obj, InvokeType invokeType, ScriptParam[] args) 
    at System.Windows.Browser.ManagedObjectInfo.Invoke(ManagedObject obj, InvokeType invokeType, String memberName, ScriptParam[] args) 
    at System.Windows.Hosting.ManagedHost.InvokeScriptableMember(IntPtr pHandle, Int32 nMemberID, Int32 nInvokeType, Int32 nArgCount, ScriptParam[] pArgs, ScriptParam& pResult, ExceptionInfo& pExcepInfo) 

我用下面的代码,其中儿童是自定义对象的的ObservableCollection,

  reg.OnDropping = function (sender, args) { 
       if (args.toItem.Children.Count > 0) { 
        args.cancel = true; 
       } 
       else { 
        args.cancel = false; 
       } 
      } 

是否有任何其他方式来访问Javascript中的计数?

问候, KARTHIK

回答

1

为了从Javascript访问对象的属性,该属性需要标记ScriptableMember属性,或者它所属的类标记为ScriptableTypeObservableCollection<T>这两个类都不是这样。

务实的解决方案是一个HasChildren属性添加到您的自定义对象: -

[ScriptableMember] 
public bool HasChildren 
{ 
     get { return Children.Count > 0; } 
} 
0

你有做出的ObservableCollection ScriptableMember?你需要添加这个属性,使在JavaScript中可用。请检查下面的链接了解更多信息:

Walkthrough: Calling Managed Code from JavaScript

HtmlPage.RegisterScriptableObject Method

我希望它能帮助。

+0

为了访问Count属性是不是会还需要一个ScriptableMember呢? – AnthonyWJones 2011-06-09 08:59:06

+0

你是对的@AnthonyW琼斯。在这种情况下,如上所述,向课堂添加一个属性更合适。谢谢 – 2011-06-09 09:03:39