Итак, я получил этот элемент управления:
CharacterMapControl.xaml:
<UserControl x:Class="CharacterMap.CharacterMapControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:CharacterMap">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="350"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal">
<TextBlock Text=""></TextBlock>
</StackPanel>
</Grid>
</UserControl>
Затем CharacterMapControl.xaml.cs:
using System.Windows;
using System.Windows.Controls;
namespace CharacterMap
{
/// <summary>
/// Interaction logic for CharacterMapControl.xaml
/// </summary>
///
public partial class CharacterMapControl : UserControl
{
public static readonly DependencyProperty FilepathProperty = DependencyProperty.Register("Filepath", typeof(string), typeof(CharacterMapControl));
public string Filepath
{
get { return (string)GetValue(FilepathProperty); }
set { SetValue(FilepathProperty, value); }
}
public CharacterMapControl()
{
InitializeComponent();
}
}
}
Это внутри WPFПользовательская библиотека управления для .NET Core.
Затем я добавил новый WPF App .NET Core Project и отредактировал файл MainWindow.xaml, чтобы он выглядел так:
<Window x:Class="WPF_Control_Tester.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:charactermap="clr-namespace:CharacterMap;assembly=CharacterMap"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<charactermap:CharacterMapControl Filepath="D:\\repos\\WpfProjects\\latinchars.xml"></charactermap:CharacterMapControl>
</Grid>
</Window>
Хорошо - теперь Filepathвнутри CharacterMapControl.xaml.cs всегда null. Я не понимаю почему. Он правильно связан и должен отображаться в Filepath, который я добавил в MainWindow или?