WPF MultiBinding 问题

最近遇到一个在xaml中使用MultiBinding并不能成功的问题,现象如下:


        
            
                
                    
                        
                    
                
            
        
    

    
        
        
    

在后台ViewModel代码中,grid参数始终为null

public DelegateCommand WindowLoadedCommand
{
    get
    {
        return new DelegateCommand((grid) =>
        {

        }, (obj) => true);
    }
} 
  

但是如果把xaml中的代码顺序换一下,grid参数就不为null:


        
        
    
    
    
        
            
                
                    
                        
                    
                
            
        
    

猜想可能是因为wpf控件加载顺序问题,第一种写法Loaded事件是针对window窗体,有可能窗体加载好了,datagrid并没有完全好。

但是如果不用MultiBinding,那么第一种写法也能够成功获取grid参数,这就很奇怪,难道 MultiBinding 哪里机制不一样?

还有一种方法,就是如下写法,不用考虑Window还是datagrid加载顺序问题,直接使用datagrid的loaded事件:

    
        
            
                
                    
                        
                            
                                
                            
                        
                    
                
            
        
    

 

你可能感兴趣的:(WPF)