在一个大视图mvvm光的几个小视图

问题描述 投票:0回答:1

我是c#的新手,但我尝试了几个小视图,我必须要有一个大视图,但我的数据绑定不起作用。我用过mvvm灯。我在每个小视图中添加了一个datacontex。它是mainviewwindows的代码:

<Window xmlns:View1="clr-namespace:BBS.CaseDetails.Operator.View"  xmlns:View="clr-namespace:BBS.CaseDetails.Suspect.View"  x:Class="BBS.CaseDetails.CaseDetailsWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:BBS.CaseDetails"
        xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase"

        mc:Ignorable="d"
        Title="CaseDetailsWindow" Height="450" Width="800">
    <Grid d:DataContext="{Binding Source={StaticResource Locator}}">
        <View1:CaseInformationView  />
    </Grid>
</Window>

小视图的代码:

<UserControl x:Class="BBS.CaseDetails.Operator.View.CaseInformationView"
             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:BBS.CaseDetails.Operator.View"
             xmlns:resx="clr-namespace:BBS.Resource.Properties;assembly=BBS.Resource"
             mc:Ignorable="d" 
             d:DataContext="{Binding CaseInformationViewModel, Source={StaticResource Locator}}">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1.5*" />
            <ColumnDefinition Width="4*" />

        </Grid.ColumnDefinitions>
        <Label Grid.Row="0" Grid.Column="0" Content="{x:Static resx:CaseDetails.CaseInformation}" FontWeight="Bold"/>
        <Label Grid.Row="1" Grid.Column="0" Content="{x:Static resx:CaseDetails.SteriaFitPlusOperator}"/>
        <Label Grid.Row="2" Grid.Column="0" Content="{x:Static resx:CaseDetails.IncidentNumber}"/>
        <Label Grid.Row="3" Grid.Column="0" Content="{x:Static resx:CaseDetails.IncidentDate}"/>
        <TextBox Grid.Column="1" Grid.Row="1" Text="{Binding SteriaFitPlusOperator}"  />
        <TextBox Grid.Column="1" Grid.Row="2" Text="{Binding CaseInformationModel.IncidentNumber}"  />
        <DatePicker Grid.Column="1" Grid.Row="3" Text="{Binding CaseInformationModel.IncidentDate.Date, Mode=OneWay}" />
        <Image Grid.Column="2" HorizontalAlignment="Center" Height="auto"  Grid.Row="1" Width="100" />
    </Grid>
</UserControl>

我的小视图的viewmodel:

namespace BBS.CaseDetails.Operator.ViewModel
{
   public class CaseInformationViewModel: ViewModelBase
    {
        private CaseInformationModel _caseInformationModel;
        public CaseInformationModel CaseInformationModel
        {
            get
            {
                return _caseInformationModel;
            }
            set
            {
                Set(() => this.CaseInformationModel, ref _caseInformationModel, value);
            }
        }

    }
}
c# asp.net mvvm mvvm-light
1个回答
0
投票

你的问题可能在这里:

...<Grid d:DataContext="{Binding Source={StaticResource Locator}}">...

...mc:Ignorable="d" 
   d:DataContext="{Binding CaseInformationViewModel, Source={StaticResource Locator}}">...

看看这个:Commenting properties in xaml

© www.soinside.com 2019 - 2024. All rights reserved.