То, что у вас должно работать, у меня аналогичная работа, например:
public static string GetId ( DependencyObject target )
{
return ( ( target.GetValue( IdProperty ) ) as string );
}
public static void SetId ( DependencyObject target, string value )
{
target.SetValue( IdProperty, value );
}
public static readonly DependencyProperty IdProperty = DependencyProperty.RegisterAttached(
"SamplePropertyName",
typeof( string ),
typeof( Translatable ),
new PropertyMetadata( IdPropertyChanged ) );
Что связано как:
<TextBlock TextWrapping="Wrap" mystuff:myclass.Id="{Binding FooBar.Id}"/>
Единственная часть вашей привязки я бы попробовал иизменение:
<toolkit:NumericUpDown Value="{Binding CampoInfo.ValorRegistado, Mode=TwoWay"/>
Я бы проверил, работает ли выражение привязки, например, возможно, вам нужно только указать ValorRegistado в приведенном выше примере.Один из способов проверки состоит в том, чтобы попробовать привязку к простому TextBlock, чтобы доказать, что значение проходит, или связать CampoInfo и увидеть показ полного имени объекта.
Другой подход к попытке связать свойство зависимостей - это имястраница, которую вы используете и используете привязку элемента, например:
В определении вашей страницы XAML:
<UserControl
x:Name="myPageIdentifier"
x:Class="MyTest.MyPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400">
....
</UserControl>
Затем выполните привязку как:
<toolkit:NumericUpDown Value="{Binding ElementName=myPageIdentifier,Path=SamplePropertyName,Mode=TwoWay"/>