使用 Caliburn Micro 在弹出控件中绑定 UserControl

UserControl binding inside popup control using caliburn micro

我正在尝试在 wpf 弹出控件中加载一个 UserControl,从下面的代码中我可以看到弹出窗口以黄色背景打开,但是 ContentControl 带有 未加载视图 。我正在使用 Caliburn Micro 来解析 View 和 ViewModel。 下面是我的xaml,pop外面的contentcontrol工作正常,但是Popup里面同样的contentcontrol只显示黄色背景。

<ContentControl x:Name="SearchListViewModel" />
                <ToggleButton Name="button1">
                    <ToggleButton.Template>
                        <ControlTemplate TargetType="ToggleButton">
                            <TextBlock Text="Select" />
                        </ControlTemplate>
                    </ToggleButton.Template>
                </ToggleButton>
                <Popup IsOpen="{Binding IsChecked, ElementName=button1}" StaysOpen="False">
                    <Border>
                        <StackPanel
                            Width="500"
                            Height="500"
                            Background="Yellow"
                            Orientation="Vertical">
                            <ContentControl x:Name="SearchListViewModel" />
                        </StackPanel>
                    </Border>
                </Popup>

我知道这有点晚了,但是 Caliburn Micro 不会t/can在 Popup 控件中发现 ContentControl。因此内容控件不会绑定到 SearchListViewModel 属性.

但是,您可以指定正确的绑定路径:

<ContentControl cal:View.Model="{Binding Path=SearchListViewModel,Mode=OneWay}"/>

注: 您还需要引用 cal 命名空间:

xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro.Platform"