我有一个非常简单的silverligt页面,其中包含此列表框
<ListBox ItemsSource="{Binding itemList}" x:Name="list">
<ListBox.ItemTemplate>
<DataTemplate x:Name="datatemplate" >
<Grid Name="grid" AutomationProperties.AutomationId="grid" >
<TextBlock Text="{Binding Txt}" AutomationProperties.AutomationId="{Binding Id}"></TextBlock>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我希望我的Coded UI测试选择此列表项之一并单击它,但我不知道如何搜索项列表。 我尝试了一切,但我无法弄清楚如何得到它。
这是我简单的测试方法
public void ClickOnItem()
{
SilverlightList list = new SilverlightList(this.UISilverlightApplicatiWindow.UISilverlightApplicatiDocument.UISilverlightControlHoPane.UIItemCustom.UIMainPageMainPage.UIListList);
list.SearchProperties.Add(SilverlightList.PropertyNames.AutomationId, "list");
SilverlightListItem item = new SilverlightListItem(list);
item.SearchProperties.Add(SilverlightListItem.PropertyNames.AutomationId, "3");
Mouse.Click(item);
}
(其中“3”是列表中的第三个元素,ofc)
我要搜索什么? 我需要额外的xaml标签吗?
答案 0 :(得分:0)
我不确定这是否是你想要的但是:
拥有Framework元素后,您可以使用&#34; Items&#34;来访问这些项目。财产本身。 实施例
var item = list.Items[index]
或使用Linq
var item = list.Items.First(c => c.Id == 3);
获得该项目后,您可以使用SelectedItem属性选择它,如下所示:
list.SelectedItem = item;
或视情况而定
list.SelectedValue = item;
要触发click事件,您只需调用它即可将
list.OnMouseLeftButtonDown(null)
这意味着您希望在没有参数的情况下触发它。
请参考以下链接作为来源 http://msdn.microsoft.com/en-us/library/system.windows.controls.listbox%28VS.95%29.aspx