Я пытаюсь выполнить привязку к экземпляру GridLength в приложении Магазина Windows (скомпилированном с помощью компилятора Visual Studio 2013) в C++/CX, но по какой-то причине я продолжаю получать следующую ошибку во время выполнения:
Error: Converter failed to convert value of type 'Windows.Foundation.IReference`1<Windows.UI.Xaml.GridLength>' to type 'GridLength'; BindingExpression: Path='MyHeight' DataItem='MyNamespace.MyObject'; target element is 'Windows.UI.Xaml.Controls.RowDefinition' (Name='null'); target property is 'Height' (type 'GridLength').
Мой код выглядит примерно так:
namespace MyNamespace
{
[Windows::UI::Xaml::Data::Bindable]
public ref class MyObject sealed
{
property Windows::UI::Xaml::GridLength MyHeight
{
Windows::UI::Xaml::GridLength get() { return myHeight; }
}
}
}
и мой файл XAML по существу выглядит так:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="{Binding MyHeight}"/>
</Grid.RowDefinitions>
</Grid>
Просто к вашему сведению, другие свойства в моем классе привязываются правильно. Проблема возникает только со структурой значений GridLength. Очевидно, что свойство находит правильно, но по какой-то причине не может сопоставить типы.