Я только начинаю с WPF, использующего WinForms в течение некоторого времени и, похоже, упал при первом препятствии.Доступ к Usercontrols в WPF
У меня есть главный XAMLdefined, как
<Window x:Class="FHIRCDALoader.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:FHIRCDALoader.xaml"
Title="FHIR CDA Loader" Height="350" Width="525"
Icon="Icons/color_swatch.png">
<Window.CommandBindings>
<CommandBinding Command="ApplicationCommands.New"
Executed="NewDocument" />
</Window.CommandBindings>
<DockPanel>
<local:menubar DockPanel.Dock="Top"/>
<local:toolbar DockPanel.Dock="Top"/>
<local:statusbar DockPanel.Dock="Bottom" />
<RichTextBox x:Name="Body"/>
</DockPanel>
</Window>
Обратите внимание на использование пользовательских элементов управления, один из которых является «статусной»
<UserControl x:Class="FHIRCDALoader.xaml.statusbar"
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">
<StatusBar >
<StatusBarItem>
<TextBlock x:Name="bbstatusbar" />
</StatusBarItem>
</StatusBar>
</UserControl>
Так в MainWindow.xaml.cs я вижу, может ссылаться на RichTextBox с именем body из основного файла XAML. Однако я не могу ссылаться на TextBlock в UserControl, который называется «bbstatusbar».
Как установить значение TextBlock из MainWindow.xaml.cs?
Обычно предпочтительным способом является использование MVVM: (1) вы определяете модели представления для своего основного окна и управления, (2) вы привязываете значение текста текстового поля к соответствующему свойству зависимостей в модели представления usercontrol, (3) вы получаете доступ к связанному свойству из основной модели представления. – Vlad
Изучите MVVM. Пожалуйста, внимательно прочитайте [это] (http://stackoverflow.com/a/15684569/643085). Вы не получаете доступ к пользовательскому интерфейсу в WPF для извлечения/установки данных просто потому, что [UI не является данным] (http://stackoverflow.com/a/14382137/643085) –