0

我为应用程序构建扩展是我的问题。

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

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

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

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

从调试开始,它每次都会命中我的视图模型,但从不更新任何东西。

我将我的视图添加到主布局中,例如

 <!--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}" />

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

4

1 回答 1

0

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

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

于 2013-08-27T19:01:12.877 回答