Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
 Доступ к элементам usercontrol'a из другого окна wpf  [new]
spk57
Member

Откуда:
Сообщений: 1
Здравствуйте.
Есть главное окно программы MainWindow.xaml
<mui:ModernWindow x:Class="AccessUserControl.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mui="http://firstfloorsoftware.com/ModernUI"
        Title="mui" IsTitleVisible="True"          
        ContentSource="/Pages/Page1.xaml" Width="600" Height="400">

    <mui:ModernWindow.MenuLinkGroups>
        <mui:LinkGroup DisplayName="Первая вкладка">
            <mui:LinkGroup.Links>
                <mui:Link Source="/Pages/Page1.xaml" />
            </mui:LinkGroup.Links>
        </mui:LinkGroup>
        <mui:LinkGroup DisplayName="Вторая вкладка" GroupName="settings">
            <mui:LinkGroup.Links>
                <mui:Link Source="/Pages/Page2.xaml" />
            </mui:LinkGroup.Links>
        </mui:LinkGroup>
    </mui:ModernWindow.MenuLinkGroups>
</mui:ModernWindow>


В нем отображается usercontrol Page1.xaml
<UserControl x:Class="AccessUserControl.Pages.Page1"
             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" 
             xmlns:mui="http://firstfloorsoftware.com/ModernUI"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid Style="{StaticResource ContentRoot}">
            <Grid>
            <Button x:Name="OpenChildrenWindow" Content="Открыть дочерние окно" HorizontalAlignment="Left" Margin="62,183,0,0" VerticalAlignment="Top" Width="151" Click="OpenChildrenWindow_Click"/>
            <TextBox x:Name="txtbox1" HorizontalAlignment="Left" Height="23" Margin="77,27,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
            <TextBox x:Name="txtbox2" HorizontalAlignment="Left" Height="23" Margin="77,82,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
        </Grid>
    </Grid>
</UserControl>


Из этой страницы открывается новое окно ChildrenWindow.xaml
<controls:MetroWindow x:Name="ChildrenWindow1" x:Class="AccessUserControl.ChildrenWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
    Title="MainWindow" 
    Height="350" 
    Width="525">
    <Grid>
        <TextBox x:Name="ChildTxtBox1" HorizontalAlignment="Left" Height="23" Margin="209,63,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
        <TextBox x:Name="childTxtBox2" HorizontalAlignment="Left" Height="23" Margin="209,118,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" SpellCheck.IsEnabled="True"/>
        <Button x:Name="AcceptChanges" Content="Применить изменения" HorizontalAlignment="Left" Margin="194,178,0,0" VerticalAlignment="Top" Width="146" RenderTransformOrigin="0.12,0.693" Click="AcceptChanges_Click"/>

    </Grid>
</controls:MetroWindow>


Как из ChildrenWindow.xaml получить доступ к элементам (textbox'ам к примеру) Page1.xaml?
4 июл 14, 15:46    [16260861]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к элементам usercontrol'a из другого окна wpf  [new]
NewBarbarian
Member

Откуда:
Сообщений: 10
Лучше всего использовать шаблон проектирования MVVM, тогда ViewModel дочернего окна вы можете иметь доступ к ViewModel других представлений..
9 июл 14, 17:29    [16282679]     Ответить | Цитировать Сообщить модератору
 Re: Доступ к элементам usercontrol'a из другого окна wpf  [new]
Алексей К
Member

Откуда: Новосибирск
Сообщений: 13632
spk57
Как из ChildrenWindow.xaml получить доступ к элементам (textbox'ам к примеру) Page1.xaml?
Если явных ссылок нет, то можно пробежаться по визуальному дереву (Visual Tree) и получить всё что надо.
9 июл 14, 17:45    [16282756]     Ответить | Цитировать Сообщить модератору
Все форумы / WPF, Silverlight Ответить