WPF binding-Benutzer-Steuerelement mit Daten in C# - code
Habe ich create user control so:
public partial class View
{
public View()
{
InitializeComponent();
}
public static DependencyProperty NameProperty = DependencyProperty.Register("Name", typeof(string), typeof(TeaserView) );
public string Name
{
get { return (string)GetValue(NameProperty); }
set { SetValue(NameProperty, value); }
}
}
XAML:
<UserControl x:Class="Controls.View"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="200" Width="164">
<Grid VerticalAlignment="Stretch"
x:Name="Preview">
<Label Height="28" Content="{Binding ElementName=Preview, Path=Name}" Background="LightYellow" x:Name="name" VerticalAlignment="Top" ></Label>
</Grid>
</UserControl>
und verwenden Sie es in Window1 einfach in XAML:
<controls:View Height="200" Name="View1" Width="164" />
und ich versuche den Inhalt in C# (Name-Eigenschaft in diesem Beispiel), aber es macht ' N der Arbeit, Etikett, Inhalt ist immer noch leer. (Alle refereces, etc. gut sind), Was ist falsch?
InformationsquelleAutor Kamilos | 2009-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code ist falsch. Sie binden an Grid.Name-Eigenschaft, die "Vorschau", nicht zu sehen.Name.
I wirklich ermutigen Sie Sie, zu gehen, Lesen Sie von A bis Z "DataBinding-Übersicht" auf der MSDN-Website. Es lohnt sich Ihre Zeit, Vertrauen Sie mir :). In der Tat die ganze "Windows Presentation Foundation" Abschnitt würde Ihre Aufmerksamkeit Wert sein.
Als für Ihren code, die folgenden arbeiten:
Aber sind Sie sicher, dass Sie ausblenden möchten, die "Name" - Eigenschaft von den Eltern?
InformationsquelleAutor Anvaka
Haben Sie die datacontext auf das Benutzersteuerelement? Versuchen Sie es, um zu seiner eigenen codebehind:
InformationsquelleAutor Guy Starbuck
Ich habe die Name-Eigenschaft nur als Beispiel. Ich versuche mit Label-Inhalte in Window1.xaml.cs wie:
InformationsquelleAutor Kamilos
Versuchen Sie die folgenden verbindlich, sollte es funktionieren:
Sollten Sie auch definieren xmlns:local="whatever_path_you_have" auf den Anfang der Datei.
Außerdem schlage ich die Umbenennung von "Name" DP, um etwas anderes zu vermeiden, die Namen der Absprache.
InformationsquelleAutor Ugur Turan
Kopiert Ihre genauen code und es funktioniert gut.
Jedoch, es nicht zu tun, was Sie wahrscheinlich erwarten, es zu tun. Du bist die Quelle der Bindung an die
Grid
Instanz. Daher dieName
Eigenschaft wird der Ertrag in der "Vorschau". Die Name-Eigenschaft, die Sie definiert haben, in IhremUserControl
wird ignoriert, da bereits eineName
Eigenschaft aufUserControl
.InformationsquelleAutor Kent Boogaart