Мне нужно создать настраиваемое присоединенное свойство, которое может быть пустым, как показано ниже:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525">
<Grid>
<l:SimpleAttach.MyProperty></l:SimpleAttach.MyProperty>
</Grid>
I tried doing it this way:
public static class SimpleAttach
{
public static object GetMyProperty(DependencyObject obj)
{
return obj.GetValue(MyPropertyProperty);
}
public static void SetMyProperty(DependencyObject obj, object value)
{
obj.SetValue(MyPropertyProperty, value);
}
// Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MyPropertyProperty =
DependencyProperty.RegisterAttached("MyProperty", typeof(object), typeof(SimpleAttach), new PropertyMetadata(null));
}
Но это просто дает ошибку:
Свойство MyProperty не может быть пустым.
Напротив, у MS, похоже, нет проблем с созданием пустых прикрепленных свойств. Вот пример, который не выдает ошибки о том, что он пуст:
<TextBlock Name="VatAmount" Text="hello world" TextAlignment="Right" Margin="0,0,20,111" HorizontalAlignment="Right" Width="120" Height="16" VerticalAlignment="Bottom">
<i:Interaction.Behaviors>
</i:Interaction.Behaviors>
</TextBlock>
Итак, что мне нужно сделать, чтобы сообщить XAML, что это свойство может быть пустым?
<l:SimpleAttach.MyProperty>null</l:SimpleAttach.MyProperty>
- person Abin   schedule 25.03.2016