Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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
C# MahApps选项卡控件绑定_C#_Wpf_Data Binding_Mvvm Light_Mahapps.metro - Fatal编程技术网

C# MahApps选项卡控件绑定

C# MahApps选项卡控件绑定,c#,wpf,data-binding,mvvm-light,mahapps.metro,C#,Wpf,Data Binding,Mvvm Light,Mahapps.metro,嗨,我是wpf的新手,我使用MVVM light。 我有一个视图,其中Mahapps选项卡控件绑定到主视图的viewmodel中的列表,我有一个按钮,用于向列表中添加项目。 mahapps选项卡项绑定到内容视图,但由于某些原因,它不会显示任何内容,即使在我将项添加到绑定列表时,它也会添加新的选项卡项。 也许我做错了,欢迎任何建议。提前谢谢 TickerView <UserControl x:Class="V2.Views.TickersView" xmlns="http:

嗨,我是wpf的新手,我使用MVVM light。 我有一个视图,其中Mahapps选项卡控件绑定到主视图的viewmodel中的列表,我有一个按钮,用于向列表中添加项目。 mahapps选项卡项绑定到内容视图,但由于某些原因,它不会显示任何内容,即使在我将项添加到绑定列表时,它也会添加新的选项卡项。 也许我做错了,欢迎任何建议。提前谢谢

TickerView

<UserControl x:Class="V2.Views.TickersView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
         xmlns:local="clr-namespace:V2.Views"
         xmlns:y="clr-namespace:V2.ViewModel"
         xmlns:simpleChildWindow="clr-namespace:MahApps.Metro.SimpleChildWindow;assembly=MahApps.Metro.SimpleChildWindow"


         mc:Ignorable="d"             
         d:DesignHeight="800" d:DesignWidth="600"
         DataContext="{Binding Tickers, Source={StaticResource Locator}}">




<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="15*"/>
    </Grid.RowDefinitions>
    <Button   Style="{StaticResource MaterialDesignFloatingActionMiniDarkButton}"  Content="+" VerticalContentAlignment="Center" Command="{Binding AddTickerCommand , Mode=OneWay}" HorizontalAlignment="Right" VerticalAlignment="Center"  Grid.Row="0" Margin="0,0,15,0"  BorderBrush="{x:Null}"  />
    <Controls:MetroAnimatedTabControl
        ItemsSource="{Binding TickersList}"

        Grid.Row="1">

        <Controls:MetroAnimatedTabControl.ItemContainerStyle>
            <Style TargetType="TabItem">
                <Setter Property="Header" Value="{Binding Name}"/>
            </Style>
        </Controls:MetroAnimatedTabControl.ItemContainerStyle>
        <Controls:MetroAnimatedTabControl.ContentTemplate>
            <DataTemplate DataType="{x:Type y:TickerViewModel}">
                <ContentControl Content="{Binding TickerView}"  Height="{Binding ActualHeight, ElementName=parentElementName}" Width="{Binding ActualWidth, ElementName=parentElementName}" />
            </DataTemplate>
        </Controls:MetroAnimatedTabControl.ContentTemplate>

    </Controls:MetroAnimatedTabControl>



</Grid>
TickerView

<UserControl x:Class="V2.Views.TickerView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:V2.Views"
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300"
         DataContext="{Binding Ticker, Source={StaticResource Locator}}">
<Grid>
    <StackPanel>
        <TextBlock Text="{Binding Name}"/>
    <Button Height="Auto" Margin="0,118,0,134">sdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasda</Button>
        <TextBlock Text="{Binding Market}"/>
    </StackPanel>
</Grid>

斯达斯达斯达斯达斯达斯达斯达斯达斯达斯达斯达斯达

内容模板
应包含
TickerView
,而不是绑定到名为
TickerView
的属性:

<Controls:MetroAnimatedTabControl.ContentTemplate>
    <DataTemplate DataType="{x:Type y:TickerViewModel}">
        <local:TickerView />
    </DataTemplate>
</Controls:MetroAnimatedTabControl.ContentTemplate>
DataContext="{Binding Ticker, Source={StaticResource Locator}}">

它将自动继承
TabControl
中相应的
TickerViewModel
作为其
DataContext
继承。

同样的问题,TickerView没有显示在新的选项卡项中,它在我添加第二项后开始显示ticker视图我不理解它在添加第一项后很好很愚蠢挑选出来的。现在可以了。
<Controls:MetroAnimatedTabControl.ContentTemplate>
    <DataTemplate DataType="{x:Type y:TickerViewModel}">
        <local:TickerView />
    </DataTemplate>
</Controls:MetroAnimatedTabControl.ContentTemplate>
DataContext="{Binding Ticker, Source={StaticResource Locator}}">