|
SL & ExpandoObject & Binding?
|
|||
---|---|---|---|
#18+
Пробовал на нескольких машинах - у меня сабж не работает. Очень хочется чтобы работало =) Очень интересует, работает ли у вас тестовый проект для сильверлайта. Пробую двумя методами: Код: plaintext
Код: plaintext
В первом случае в Output выводится: Ошибка System.Windows.Data: ошибка пути выражения привязки (BindingExpression): не найдено свойство "Property" в "System.Dynamic.ExpandoObject" "System.Dynamic.ExpandoObject" (HashCode=19515494). Выражение привязки: Path="Property" DataItem="System.Dynamic.ExpandoObject" (HashCode=19515494); целевой элемент "System.Windows.Controls.TextBlock" (Name="firstTestTextBlock"); целевое свойство "Text" (тип "System.String").. Во втором случае этой ошибки нет. Если пытаться сделать то же самое в ВПФ, то в первом случае ошибок не будет и привязка от работает . во втором случае в Output выведется: System.Windows.Data Error: 17 : Cannot get 'Item[]' value (type 'Object') from '' (type 'ExpandoObject'). BindingExpression:Path=[Property]; DataItem='ExpandoObject' (HashCode=59593954); target element is 'TextBlock' (Name='secondTestTextBlock'); target property is 'Text' (type 'String') TargetInvocationException:'System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: The result of the dynamic binding produced by the object with type 'System.Dynamic.ExpandoObject' for the binder 'MS.Internal.Data.TrivialGetIndexBinder' needs at least one restriction. at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel) at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args) at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) --- End of inner exception stack trace --- at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Delegate.DynamicInvokeImpl(Object[] args) at MS.Internal.Data.DynamicIndexerAccessor.GetValue(Object component, Object[] args) at MS.Internal.Data.PropertyPathWorker.GetValue(Object item, Int32 level) at MS.Internal.Data.PropertyPathWorker.RawValue(Int32 k)' Вопрос: как заставить работать привязку? Прикрепляю тестовые проекты для сильверлайта и ВПФ. Попробуйте запустить у себя сильверлайт проект. Скажите, работает ли хоть один из методов привязки для SL? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 11:50 |
|
SL & ExpandoObject & Binding?
|
|||
---|---|---|---|
#18+
Судя по этому и этому привязка должна работать. Но судя по этому - нет. Все линки из гугла по кейвордам "dynamic expandoobject silverlight". ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 12:27 |
|
|
start [/forum/topic.php?fid=21&gotonew=1&tid=1441751]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
others: | 315ms |
total: | 434ms |
0 / 0 |