те же два пользовательских элемента управления в xaml - PullRequest
0 голосов
/ 14 октября 2010

У меня есть один пользовательский элемент управления в wpf.И я хочу использовать этот пользовательский элемент управления два раза в одном и том же виде.

Я использую подход mvvm.Кто-нибудь может дать мне хорошее предложение о том, какой подход я должен использовать.

1 Ответ

1 голос
/ 14 октября 2010

Хм, есть причина, почему вы не используете его дважды?Если вы привязываетесь к виртуальной машине (как DataContext) с теми же свойствами, она будет «просто работать» не иначе, как привязка двух TextBlocks (или другого «обычного» элемента управления) к одному и тому же свойству в виртуальной машине.

Здесь я использую тот же элемент управления в том же окне, но его также легко можно использовать в том же UserControl, DataTemplate и т. Д. - что бы вы ни определяли как «представление».

XAML

<Window x:Class="MyNamespace.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:MyNamespace"
        Title="My Window" Width="300" Height="300">
    <StackPanel>
        <local:MyUserControl x:Name="control1" 
                             SomeProperty="{Binding MyMVVMProperty}" />
        <local:MyUserControl x:Name="control2" 
                             SomeProperty="{Binding MyMVVMProperty}" />

        <TextBlock x:Name="txt1"
                   Text="{Binding AnotherMVVMProperty}" />
        <TextBlock x:Name="txt2"
                   Text="{Binding AnotherMVVMProperty}" />
        <TextBlock x:Name="txt3"
                   Text="{Binding AThirdMVVMProperty}" />

    </StackPanel>
</Window>

Код сзади

class Window1 : Window
{
    MyViewModel mViewModel = new MyViewModel();

    public Window1()
    {
        this.DataContext = mViewModel;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...