Silverlight XAML绑定正在引发空引用异常

Silverlight XAML绑定正在引发空引用异常,silverlight,unit-testing,Silverlight,Unit Testing,我的命令是上一个命令的延续,我将我的组合框放在另一个子网格中,名为“grid_SortPart”。因此,我尝试设置GetUIElement(“grid_SortPart”).DataContext=\u viewModel;这对我来说不起作用 我还尝试将_target.load更改为_target.LayoutUpdated,但仍然存在相同的问题。在调试过程中,我发现,对于Object\u目标,出现错误“Object reference not set to a instance of a Ob

我的命令是上一个命令的延续,我将我的组合框放在另一个子网格中,名为“grid_SortPart”。因此,我尝试设置GetUIElement(“grid_SortPart”).DataContext=\u viewModel;这对我来说不起作用

我还尝试将_target.load更改为_target.LayoutUpdated,但仍然存在相同的问题。在调试过程中,我发现,对于Object\u目标,出现错误“Object reference not set to a instance of a Object.”

下面是我通过引用设置的代码。请告诉我我做错了什么,以及如何纠正它

public ObservableCollection<ReturnStatus> _status;
[TestInitialize]
public void TestInit()
{
  _target = new EfileView();
  efvm = new EfileViewModel();
  var p1 = new ReturnStatus { Status = "Completed" };
  var p2 = new ReturnStatus { Status = "Not Completed" };
  _status = new ObservableCollection<ReturnStatus> { p1, p2 };
  GetUIElement<Grid>("grid_SortPart").DataContext = efvm;
}

private T GetUIElement<T>(string name) where T : UIElement
{ return (T)_target.FindName(name); }

[Asynchronous]
[TestMethod]
public void TestCurrencySelection()
{
  _target.LayoutUpdated += (s, e) => 
   {
     // Set the currency list explicitly
     efvm.ItemSource_ReturnStatus = _status;
     var currencyCombo = GetUIElement<ComboBox>("cmb_Returns_2");
     // This assert fails as Items.Count == 0     
     CollectionAssert.AreEquivalent(currencyCombo.Items, _status, "Failed to data-bind currencies.");
      EnqueueTestComplete();
    };
    TestPanel.Children.Add(_target);
}
公共可观测采集状态;
[测试初始化]
公共无效测试()
{
_target=新的EfileView();
efvm=新的EfileViewModel();
var p1=新返回状态{Status=“Completed”};
var p2=新返回状态{Status=“Not Completed”};
_状态=新的可观察集合{p1,p2};
GetUIElement(“grid_SortPart”).DataContext=efvm;
}
私有T GetUIElement(字符串名称),其中T:UIElement
{return(T)_target.FindName(name);}
[异步]
[测试方法]
公共无效TestCurrencySelection()
{
_target.LayoutUpdated+=(s,e)=>
{
//明确设置货币列表
efvm.ItemSource\u ReturnStatus=\u status;
var currencyCombo=GetUIElement(“cmb_返回_2”);
//此断言作为项失败。计数==0
CollectionAssert.AreEquivalent(currencyCombo.Items,状态为“无法数据绑定货币”);
EnqueueTestComplete();
};
TestPanel.Children.Add(_target);
}