Я потратил столько кода, сколько мог, чтобы попытаться получить работающий кусок кода, но я все еще терплю неудачу.Некоторые советы приветствуются.
Я пытаюсь заставить работать DependencyProperty, это так просто, и все же данные, которые я устанавливаю в главном окне, не отображаются в пользовательском элементе управления.
В MainWindow я устанавливаю TextValue на «привет» в xaml.TextValue хорошо отображается в xaml и компилируется, поэтому я почти уверен, что у меня настроен DependencyProperty.Когда диалоговое окно полностью открыто, я заглядываю в отладчик, и мое свойство TextValue по-прежнему равно нулю.
Я пропустил настройку контекста данных?Может быть, я не в курсе того, что я хочу сделать.
Спасибо, что нашли время, чтобы выяснить, что я делаю неправильно.
Мой пользовательский элемент управления: UserControl1 Xaml:
<UserControl x:Class="WpfApplication1.UserControl1"
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"
Loaded="UserControl_Loaded"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
</Grid>
</UserControl>
UserControl1.xaml.cs:
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for UserControl1.xaml
/// </summary>
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
public static readonly DependencyProperty TextProperty = DependencyProperty.Register("TextValue", typeof(string), typeof(UserControl1));
private string _tv;
public string TextValue
{
get
{
return _tv;
}
set
{
_tv = value;
}
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
}
}
}
Мое окно вызова xaml:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:usercontrols="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525"
Loaded='Window_Loaded'>
<Grid>
<usercontrols:UserControl1 x:Name="usercontroltest1" TextValue="hi"/>
</Grid>
</Window>
Мое окно вызова .cs:
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
}
}
}