Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf Caliburn micro和tabcontrol_Wpf_Mvvm_Caliburn.micro - Fatal编程技术网

Wpf Caliburn micro和tabcontrol

Wpf Caliburn micro和tabcontrol,wpf,mvvm,caliburn.micro,Wpf,Mvvm,Caliburn.micro,我已经查看了大多数资源,但我可以找到一个好的解决方案。我有一个标签控件硬编码 <TabControl TabStripPlacement="Left" Padding="0" Style="{DynamicResource SettingsTab}" ItemContainerStyle="{DynamicResource SettingsTabItemStyle}" Background="WhiteSmoke" > <TabItem Head

我已经查看了大多数资源,但我可以找到一个好的解决方案。我有一个标签控件硬编码

<TabControl TabStripPlacement="Left" Padding="0" Style="{DynamicResource SettingsTab}" ItemContainerStyle="{DynamicResource SettingsTabItemStyle}" Background="WhiteSmoke" >
                <TabItem Header="ΓΕΝΙΚΑ" Margin="0" IsEnabled="False" > <Grid /></TabItem>                              
                <TabItem Header="Προσωπικό" Margin="0" IsSelected="True">
                    <Grid MinHeight="400">                     

                        <ContentControl HorizontalAlignment="Stretch" Margin="50,67,50,0"  Name="ActiveItem" />
                    </Grid>
                </TabItem>
                <TabItem Header="Τραπέζια" Margin="0">
                    <Grid />
                </TabItem>

更新-重述问题
这是我定制的选项卡控件。灰色文本是一个禁用的选项卡项,其行为类似于一个组。与常规设置、系统设置等类似,它具有导航菜单的作用。现在,我在每个选项卡项(不是禁用的选项卡项)上都有一个内容控件,并绑定我想要的视图模型。
但我不能将Conductor.Collection.OneActive与CM一起使用。
为什么?
我在CM示例和其他示例中看到了helloscreens示例,但这里的问题是,如果我通过绑定执行此操作,那么除了创建一个没有任何用途的虚拟视图模型之外,没有其他方法显示禁用的选项卡项。因此,我如何实现这一点

更新:来源

我有一个标签控件硬编码

<TabControl TabStripPlacement="Left" Padding="0" Style="{DynamicResource SettingsTab}" ItemContainerStyle="{DynamicResource SettingsTabItemStyle}" Background="WhiteSmoke" >
                <TabItem Header="ΓΕΝΙΚΑ" Margin="0" IsEnabled="False" > <Grid /></TabItem>                              
                <TabItem Header="Προσωπικό" Margin="0" IsSelected="True">
                    <Grid MinHeight="400">                     

                        <ContentControl HorizontalAlignment="Stretch" Margin="50,67,50,0"  Name="ActiveItem" />
                    </Grid>
                </TabItem>
                <TabItem Header="Τραπέζια" Margin="0">
                    <Grid />
                </TabItem>
这是要求吗

但我不能将Conductor.Collection.OneActive与CM一起使用。为什么?

我认为这不起作用的原因是使用
Conductor.Collection.OneActive
您需要将
ItemsSource
绑定到Items集合。如果要绑定
ItemsSource
,则不能在
XAML
中描述选项卡项

我创建了一个解决方案,它不涉及在xaml中描述选项卡项

关键部分:

ShellView
中,将
TabControl
ItemContainerStyle
描述为选项卡项
IsEnabled
属性可以绑定到视图模型

 <TabControl x:Name="Items"
                    Grid.Row="1"
                    TabStripPlacement="Left">
            <TabControl.ItemContainerStyle>
                <Style TargetType="{x:Type TabItem}">
                    <Setter Property="IsEnabled" Value="{Binding IsEnabled}"/>
                </Style>
            </TabControl.ItemContainerStyle>
        </TabControl>
 public Tab2ViewModel()
        {
            DisplayName = "Προσωπικό";
            IsEnabled = true;
        }
在视图模型的构造函数中启用或禁用选项卡项

 <TabControl x:Name="Items"
                    Grid.Row="1"
                    TabStripPlacement="Left">
            <TabControl.ItemContainerStyle>
                <Style TargetType="{x:Type TabItem}">
                    <Setter Property="IsEnabled" Value="{Binding IsEnabled}"/>
                </Style>
            </TabControl.ItemContainerStyle>
        </TabControl>
 public Tab2ViewModel()
        {
            DisplayName = "Προσωπικό";
            IsEnabled = true;
        }
未设置样式的结果是,第一个选项卡项被禁用,下两个选项卡项被启用


谢谢你的模型。查看和绑定。我的模型看起来是一样的。但问题是,通过使用Bind.Model,父对象是空的。有解决方法吗?好的,这很简单,但我目前有一些虚拟选项卡项被禁用。我的意思是,如果我想要一个分组菜单,这似乎是不可能的,因为我不知道如何填充我想要的选项卡控件。我看到了您的示例,但这没有帮助,因为如果您看到我的图像,它的某些项已启用=false(组),因此您希望基于什么启用/禁用某些选项卡项。我只想要一份这样的菜单。我不知道怎么用这个来指挥。问题是我希望这些东西用小写字母,唯一的解决办法是在每个选项卡项上都有一个绑定到viewModel类的contentcontrol。如果我在bitbucket上遵循您的解决方案,那么我只会得到带有白色大号字母的项目(因为它们只绑定到viewmodel),这是有意义的,让我创建另一个示例。关于这个: