Ich habe eine DLL, die das WPF-Benutzersteuerelement enthält.Wie setze ich den öffentlichen Variablenwert vom wpf-Benutzersteuerelement?
Ich habe ein WPF-Fenster in einem anderen WPF-Projekt, das das obige Benutzersteuerelement darin enthält.
Ich habe zwei öffentliche Eigenschaften in WPF-Benutzersteuerung.
Ich möchte diese Eigenschaften aus dem WPF-Fenster, in dem WPF-Benutzersteuerelement hinzugefügt wird, festlegen.
Ich habe versucht, es mit Abhängigkeitseigenschaft tun wie folgt:
TestUserControl.xaml: -
<UserControl x:Class="TestDependencyProperty.TestUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Label Content="test property" x:Name="lblTestProperty"/>
</Grid>
</UserControl>
TestUserControl.xaml.cs: -
using System.ComponentModel;
using System.Windows;
namespace TestDependencyProperty
{
/// <summary>
/// Interaction logic for TestUserControl.xaml
/// </summary>
public partial class TestUserControl
{
public TestUserControl()
{
InitializeComponent();
SetLabelText();
}
private void SetLabelText()
{
lblTestProperty.Content = TestProperty;
}
public static readonly DependencyProperty TestDependencyProperty =
DependencyProperty.Register("TestProperty",
typeof(string),
typeof(TestUserControl));
[Bindable(true)]
public string TestProperty
{
get
{
return (string)this.GetValue(TestDependencyProperty);
}
set
{
this.SetValue(TestDependencyProperty, value);
}
}
}
MainWindow.xaml : -
<Window x:Class="TestDependencyProperty.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
xmlns:local="clr-namespace:TestDependencyProperty"
>
<Grid>
<local:TestUserControl x:Name="ucTest" TestProperty="HelloWorld"/>
</Grid>
</Window>
Ich erwarte ein Label mit Inhalt "HelloWorld".
Also kann mir jemand sagen, wie es geht?
Danke.
Was haben Sie versucht? Haben Sie schon einmal eine Eigenschaft in WPF festgelegt? Wie hast du es das letzte Mal gemacht? Warum denkst du, ist dieser Fall anders? Haben Sie hier ein konkretes Problem? –
Haben Sie Abhängigkeitseigenschaften verwendet? –
@Ed Plunkett Danke für die Antwort, ich habe nicht versucht, öffentliche Variable von Benutzersteuerungseigenschaft vorher zu binden. Wenn Sie ein Code-Snippet zu diesem Problem haben, leiten Sie es weiter. Vielen Dank. – pankaj