Почему я должен перемещать всплывающее окно за пределы элемента управления для работы с привязкой данных? - PullRequest
0 голосов
/ 30 мая 2011

У меня есть этот XAML:

<ContentControl Micro:View.Model="{Binding ChildViewModel}">
    <Popup x:Name="TestPopup" Placement="Mouse" AllowsTransparency="True">
        <Border x:Name="border" Background="White" Padding="5" CornerRadius="10" BorderThickness="2" BorderBrush="Black" >
            <StackPanel Orientation="Vertical">
                <TextBlock x:Name="MainInfos" Text="{Binding MainInfos}" />
                <TextBlock x:Name="AltInfos" Text="{Binding AltInfos}" />
                <TextBlock x:Name="OtherInfos" Text="{Binding OtherInfos}" />
                <TextBlock x:Name="CanNotUseFieldInfos" Foreground="Red" Text="{Binding CanNotUseFieldInfos}" />
            </StackPanel>
        </Border>
    </Popup>
</ContentControl>

Когда я обновляю значения свойств datacontext, текстовые блоки не обновляются.

Если я перемещаю Popup вне ContentControl следующим образом:

<Popup x:Name="TestPopup" Placement="Mouse" AllowsTransparency="True">
    <Border x:Name="border" Background="White" Padding="5" CornerRadius="10" BorderThickness="2" BorderBrush="Black" >
        <StackPanel Orientation="Vertical">
            <TextBlock x:Name="MainInfos" Text="{Binding MainInfos}" />
            <TextBlock x:Name="AltInfos" Text="{Binding AltInfos}" />
            <TextBlock x:Name="OtherInfos" Text="{Binding OtherInfos}" />
            <TextBlock x:Name="CanNotUseFieldInfos" Foreground="Red" Text="{Binding CanNotUseFieldInfos}" />
        </StackPanel>
    </Border>
</Popup>

<ContentControl Micro:View.Model="{Binding ChildViewModel}"  PreviewMouseMove="Canvas_PreviewMouseMove" MouseEnter="myCanvas_MouseEnter" MouseLeave="myCanvas_MouseLeave" d:LayoutOverrides="Width, Margin" />

Это работает.

Может кто-нибудь объяснить мне, почему?Можно ли заставить работать первый XAML?

Заранее спасибо

1 Ответ

1 голос
/ 30 мая 2011

Невозможно воспроизвести какое-либо странное поведение, связанное только с переносом Popup в ContentControl, я подозреваю, что Micro:View.Model присоединенное свойство изменяет DataContext ContentControl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...