使用caliburn micro在弹出控件内绑定UserControl

时间:2018-04-11 06:56:57

标签: c# wpf xaml mvvm caliburn.micro

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

<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>

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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