C# silverlight中的另一个数据绑定问题

C# silverlight中的另一个数据绑定问题,c#,silverlight-4.0,mvvm,C#,Silverlight 4.0,Mvvm,我知道这个话题已经讨论过了,但我还没有讨论过。正如我在关于这个问题的其他示例中所看到的,我正在尝试创建一些基本的自定义DataPagerUserControl。因此,我做了以下工作: XAML: 这很好,但我希望使用以下方法从我的viewModel中获取值: <local:MyDataPager PageSizePager="{Binding Path=PageSize,Mode=TwoWay}" x:Name="MyDataPager1" /> 有人能解释一下为什么视图模型和用

我知道这个话题已经讨论过了,但我还没有讨论过。正如我在关于这个问题的其他示例中所看到的,我正在尝试创建一些基本的自定义
DataPager
UserControl
。因此,我做了以下工作:

XAML:

这很好,但我希望使用以下方法从我的
viewModel
中获取值:

<local:MyDataPager  PageSizePager="{Binding Path=PageSize,Mode=TwoWay}" x:Name="MyDataPager1" />

有人能解释一下为什么视图模型和用户控件之间的绑定不起作用吗?

查看代码,似乎您在不同的类中定义了不止一个
PageSize
属性。最有可能的是,仅仅通过查看提供的代码就很难理解,您绑定了一个属性,但更改了另一个属性的值。更改其中一个
PageSize
属性的名称,以确保数据绑定将在何处读取/写入


我认为这应该有帮助

查看代码,您似乎在不同的类中定义了不止一个
PageSize
属性。最有可能的是,仅仅通过查看提供的代码就很难理解,您绑定了一个属性,但更改了另一个属性的值。更改其中一个
PageSize
属性的名称,以确保数据绑定将在何处读取/写入


我认为这应该有帮助

与我的一位同事合作,我们找到了一个解决方案,解决了我打算做的事情:

在MyDataPager用户控件的Xaml中:

<Grid x:Name="LayoutRoot" Background="White" Loaded="MyDataPager_Loaded">
....
从上面的代码中,我们更改了MyDataPager usercontrol的ctor以删除datacontext绑定:

public MyDataPager()
        {
            //DataContext = this;
通过这种方式,我可以像这样绑定主usercontrol中的值:

<local:MyDataPager  PageSizePager="{Binding Path=PageSize,Mode=TwoWay}" x:Name="MyDataPager1" />

这样,绑定是在childusercontrol的属性上进行的,而不是在其控件上进行的(即:子控件的外观可能会毫无问题地更改),并且子usercontrol不必使用来自主usercontrol的datacontext的任何“已知”值


非常感谢您的阅读和支持,我们非常欢迎。我希望这几行可以为另一行提供帮助。

与我的一位同事合作,我们找到了解决方案:

在MyDataPager用户控件的Xaml中:

<Grid x:Name="LayoutRoot" Background="White" Loaded="MyDataPager_Loaded">
....
从上面的代码中,我们更改了MyDataPager usercontrol的ctor以删除datacontext绑定:

public MyDataPager()
        {
            //DataContext = this;
通过这种方式,我可以像这样绑定主usercontrol中的值:

<local:MyDataPager  PageSizePager="{Binding Path=PageSize,Mode=TwoWay}" x:Name="MyDataPager1" />

这样,绑定是在childusercontrol的属性上进行的,而不是在其控件上进行的(即:子控件的外观可能会毫无问题地更改),并且子usercontrol不必使用来自主usercontrol的datacontext的任何“已知”值


非常感谢您的阅读和支持,非常欢迎。我希望这些行可以服务于另一个需要的行。

PageSourceSize的声明是什么??在代码中,我似乎看到了两个PageSize属性:一个在MyViewModel类中,另一个在MyDataPager中。DataInded值绑定到MyDataPager的属性,但在最新的代码行中,您更改了MyViewModel的属性。是吗?@Tigran我已经更新了我的代码,抱歉搞混了。。“现在应该更清楚了。”安德斯,事情办好了。感谢您的支持。
PageSourceSize
的声明是什么?在代码中,我似乎看到了两个PageSize属性:一个在MyViewModel类中,另一个在MyDataPager中。DataInded值绑定到MyDataPager的属性,但在最新的代码行中,您更改了MyViewModel的属性。是吗?@Tigran我已经更新了我的代码,抱歉搞混了。。“现在应该更清楚了。”安德斯,事情办好了。感谢您的支持。对于困惑(语法:p),我做了更新。对于困惑(语法:p),我做了更新。
public MyDataPager()
        {
            //DataContext = this;
<local:MyDataPager  PageSizePager="{Binding Path=PageSize,Mode=TwoWay}" x:Name="MyDataPager1" />