首页 新闻 搜索 专区 学院

wpf绑定问题 为什么显示不了?路过大侠帮忙看下

0
悬赏园豆:5 [已解决问题] 解决于 2014-06-03 08:50

1:如图:

 

代码: 

    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            Restaurant sp = new Restaurant()
            {
                Name = "sp",
                Address = "深圳",
                PhoneNumber = "1111"
            };

            sss ss = new sss();
            ss.Restaurant = sp;

        
            this.DataContext = ss;



        }

        public class sss : NotificationObject
        {
            private Restaurant restaurant;

            public Restaurant Restaurant
            {
                get { return restaurant; }
                set
                {
                    restaurant = value;
                    this.RaisePropertyChanged("Restaurent");
                }
            }
        }
    }

Restaurant类:

    public class Restaurant  
    {
        public string Name { get; set; }
        public string Address { get; set; }
        public string PhoneNumber { get; set; }
    }

前台页面最终编译成一个类 并且和后后台是同一个类 。

同样的代码在其他的地方 为什么他的就可以?

如图:

 

代码:

后台也是

        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = new MainWindowViewModel();
        }

 

下面的Restaurant 类也是一样的 为什么我的就不能出来 很纳闷? 求解释 ?

s_p的主页 s_p | 菜鸟二级 | 园豆:267
提问于:2014-06-02 22:20
< >
分享
最佳答案
0

你的Window的DataContext的值是ss,那么在绑定的时候,应该是使用ss的属性Restaurant,而不是变量名sp

如果需要绑定Name,那么路径是Restaurant.Name,而不是sp.Name

PS:别人可以是因为它的属性名称就是sp

收获园豆:5
诶碧司 | 小虾三级 |园豆:1912 | 2014-06-02 22:48

朋友 安你的说法 只能是属性才能显示出来了?

像我这样也不行

Restaurant sp = new Restaurant()
{
Name = "sp",
Address = "深圳",
PhoneNumber = "1111"
};

 

this.DataContext = sp;

路劲是 sp.name

s_p | 园豆:267 (菜鸟二级) | 2014-06-02 22:56

@s_p: 不一定是属性,能通过路径访问到的都可以,上面的路径是Name,只要改了绑定的路径,也是可以的

诶碧司 | 园豆:1912 (小虾三级) | 2014-06-03 00:42

@诶碧司: 谢谢了 朋友 我后面通过调试查看理解了  ! 我开始总自认为是 在后台点出来 放到页面就行。

我的理解就是 页面和后台cs最终都编译成一个类 所以 页面访问cs的类 和属性 都是正常的

 后面我在this.DataContext = sp; 查看 要sp下面的调试查看的属性(就是sp能看到的) 话可能有描述不清楚 不过你说 的一样  ‘ 能通过路径访问到的都可以 ’ 

s_p | 园豆:267 (菜鸟二级) | 2014-06-03 08:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册