Ich brauche eine benutzerdefinierte angefügte Eigenschaft zu erstellen, die leer zu sein in der Lage, wie unten dargestellt:WPF Benutzerdefinierte angebracht Eigenschaft, die leer sein
<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>
Ich habe versucht, es auf diese Weise tun:
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));
}
Aber das gibt nur einen Fehler:
The property "MyProperty" cannot be empty.
Im Gegensatz dazu scheint MS kein Problem beim Erstellen leerer angehängter Eigenschaften zu haben. Hier ist ein Beispiel, das keinen Fehler geben über leer ist:
<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>
Also, was muss ich tun XAML sagen, dass diese Eigenschaft darf leer sein?
meinst du ' null l: SimpleAttach.MyProperty> ' –
Ich meine, dass zwischen den Anfangs- und Endtags nichts sein sollte. Ich würde erwarten, dass der tatsächliche Wert daher null ist. Betrachten wir das Beispiel von Interaction.Behaviours, ich denke, es ist eine Sammlung und ermöglicht daher, dass es 0 oder n Elemente gibt. – dayneo
Try Set-Eigenschaft zu –