使用带有绑定的XAML listview / gridview我使用linq查询和C#代码填充网格:
AdventureWorkEntities awDatabase = new AdventureWorkEntities();
var products = from p in awDatabase.Products
from i in awDatabase.ProductInventories
where p.ProductID == i.ProductID && p.ListPrice > 0
&& p.Name.Contains(search.Text.Trim())
select new
{
p.ListPrice,
p.Name,
p.ProductNumber,
p.DaysToManufacture,
i.Quantity
};
IListSource query = (IListSource)products;
ProductsList.ItemsSource = query.GetList();
我注意到所选项目的双击事件。双击行并将该行转移到其下的另一个网格中的语法是什么?
我想通过双击一个网格中的选定项目,我希望能够从一个网格中将一行添加到另一个网格。
编辑:XAML代码:
<ListView Name="ProductsList" IsSynchronizedWithCurrentItem="True" DataContext="{Binding}"
Margin="6,76,6,220" Width="726" MouseDoubleClick="ProductsList_MouseDoubleClick">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Width="85" Header="Product Number"
DisplayMemberBinding="{Binding Path=ProductNumber}"/>
<GridViewColumn Width="225" Header="Name"
DisplayMemberBinding="{Binding Path=Name}"/>
<GridViewColumn Width="135" Header="Days To Manufacture"
DisplayMemberBinding="{Binding Path=DaysToManufacture}"/>
<GridViewColumn Width="75" Header="Quantity"
DisplayMemberBinding="{Binding Path=Quantity}"/>
<GridViewColumn Width="75" Header="List Price"
DisplayMemberBinding="{Binding Path=ListPrice}"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
我的尝试:
private void ProductsList_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
//code to place the contents of top grid to bottome grid
List<IQueryable> selectedContents = new List<IQueryable>();
selectedContents.Add((IQueryable)ProductsList.SelectedValue);
IListSource query = (IListSource)selectedContents;
OrderContents.ItemsSource= query.GetList();
}
答案 0 :(得分:0)
您需要创建实体的Observable Collection ...并在Double click事件中从listView获取所选实体并将所选实体添加到该Observable Collection中并将该集合与第二个listview绑定....
答案 1 :(得分:0)
我对语法缺乏了解,使我无法弄清楚这一句话。
private void ProductsList_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
//moves items from top grid to bottom grid
OrderContents.Items.Add(ProductsList.SelectedValue);
}