添加视图到主用户控制难度

时间:2013-08-27 07:22:30

标签: silverlight xaml silverlight-5.0 esri

我正在构建应用程序的扩展程序,这是我的问题。

有一个主要的布局xaml页面,它绑定到主应用程序数据源(意味着你可以在应用程序上使用不同的布局)

我创建了一个我想放在此布局页面上的视图。我的视图有自己的视图模型,一旦在应用程序中单击“工具”就会设置它。

这是用于连接主应用程序的布局的数据源

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

从调试开始,它每次都会点击我的viewmodel,但从不更新任何内容。

我将视图添加到主要布局,如

 <!--Begin Custom Tab Item-->
                    <sdk:TabItem  Name="StatisticsTabItem" Cursor="Hand" Visibility="Visible">
                        <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="20" />
                                <RowDefinition Height="*" />
                            </Grid.RowDefinitions>

                            <!-- Add Stats view here-->
                            <views:StatisticsView x:Name="StatsView" DataContext="{Binding BindsDirectlyToSource=True}"  Grid.Row="1"/>
                        </Grid>
                    </sdk:TabItem>

所以目前它每次都在我的视图上设置一个标签并正确设置但在主布局xaml中的实际视图上没有任何更新

我确实将我的标签设置为

private string totalPop;
    public string TotalPop
    {
        get { return totalPop; }
        set 
        {
            if (totalPop != value)
            {
                totalPop = value; 
                OnNotifyPropertyChanged("TotalPop");
            }
        }
    }

<sdk:Label x:Name="lbltotPop" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Content="{Binding TotalPop}" />

在我的其他应用程序中它工作正常,但不知道如何设置绑定到我的视图得到更新。

1 个答案:

答案 0 :(得分:0)

在实例化视图的主布局XAML中设置视图的DataContext属性(这将避免您的视图从其父级继承DataContext)。

您应该避免的另一件事是使用名称空间“d:”作为DataContext属性。通常,该命名空间用于Design DataContext(我希望这不是你在这里设置的那个)。