gpt4 book ai didi

Javascript Observable 集合计数

转载 作者:行者123 更新时间:2023-11-30 06:04:00 24 4
gpt4 key购买 nike

我在 javascript 中访问 Silverlight ObservableCollection 计数,但出现以下错误。

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)

我正在使用以下代码,其中 children 是自定义对象的可观察集合。

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

有没有其他方法可以在 Javascript 中访问计数?

问候,卡尔提克

最佳答案

为了从 Javascript 访问对象的属性,该属性需要用 ScriptableMember 标记属性或它所属的类被标记为 ScriptableType . ObservableCollection<T> 这些都不是真的类。

实用的解决方案是添加 HasChildren自定义对象的属性:-

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

关于Javascript Observable 集合计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6288384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com