【问题标题】:Add View to Main User Control difficulty将视图添加到主用户控制难度
【发布时间】:2013-08-29 20:13:15
【问题描述】:

我正在为一个应用构建一个扩展,这是我的问题。

有一个主布局 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}" />

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

【问题讨论】:

    标签: silverlight xaml silverlight-5.0 esri


    【解决方案1】:

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

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

    【讨论】:

    • 它是一个应用程序构建器,我只构建一个适合应用程序构建器布局的扩展。它已经被编程为 d:DataContext,我还应该删除 d 吗?
    • 在行上放一个断点,并查看DataContext是否已初始化并指向正确的对象实例(检查FinalSource属性在“调试局部变量”窗口中)。 d:DataContext 用于设置设计 DataContext 实例而不是运行时实例。检查msdn.microsoft.com/en-us/library/ff602277(v=vs.95).aspx。此外,您可以仅使用 {StaticResource ViewerDataSource} 而不是 {Binding... Source={StaticResource ...}} 设置绑定
    • 我已经在主布局上添加了我自己的视图模型并查看调试器现在一切都已正确连接......现在唯一的问题是属性更改一直保持为空,即使它得到正确更新等
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    相关资源
    最近更新 更多