Comments (2)
May be this code will help you, i updated old SLMultibinding to uwp and this part looks like this:
``
...
if (relay.TargetProperty.Contains("."))
{
// split to find the type and property name
string[] parts = relay.TargetProperty.Split('.');
targetType = getXamlUiControlType(parts[0]);
targetProperty = parts[1];
}
else
{
targetType = targetElement.GetType();
targetProperty = relay.TargetProperty;
}
var sourceFields = targetType.GetTypeInfo().DeclaredProperties;//; targetType.GetFields(DpFlags);//.OrderByDescending(x => x.Name).ToArray();
var targetDependencyPropertyField =
sourceFields.First(i => i.Name == targetProperty + "Property");
DependencyProperty targetDependencyProperty =
targetDependencyPropertyField.GetValue(null) as DependencyProperty;
// bind the ConvertedValue of our MultiBinding instance to the target property
// of our targetElement
Windows.UI.Xaml.Data.Binding binding = new Windows.UI.Xaml.Data.Binding()
{
Path = new PropertyPath("ConvertedValue"),
Source = relay,
Mode = relay.Mode
};
Debug.WriteLine(targetElement.ToString());
targetElement.SetBinding(targetDependencyProperty, binding);
}
}
private string _xamlUiFullqualifiedAssemblyName = string.Empty;
private Type getXamlUiControlType(string shortTypename)
{
if (string.IsNullOrEmpty(_xamlUiFullqualifiedAssemblyName))
{
_xamlUiFullqualifiedAssemblyName = generateXamlUiFullqualifiedAssemblyname();
}
return Type.GetType(string.Format("Windows.UI.Xaml.Controls.{0}{1}",shortTypename,_xamlUiFullqualifiedAssemblyName));
}
private string generateXamlUiFullqualifiedAssemblyname()
{
//", Windows, Version = 255.255.255.255, Culture = neutral, PublicKeyToken = null, ContentType = WindowsRuntime");
var typename = typeof(Windows.UI.Xaml.Controls.Canvas).GetTypeInfo().AssemblyQualifiedName;
return typename.Substring(typename.IndexOf(','));
}
from winrtmultibinding.
Note that each type that will use multibinding need a record in default.rd.xml like
<Type Name="Windows.UI.Xaml.Controls.Canvas" Dynamic="Required All" />
<Type Name="Windows.UI.Xaml.Controls.TextBlock" Dynamic="Required All" />
from winrtmultibinding.
Related Issues (5)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from winrtmultibinding.