1
目標:
需要在列表視圖中選擇包含單個行的按鈕。按鈕列表中的單個選項按鈕
問題:
當您點擊位於listview內部的按鈕時,不知道如何在列表視圖中進行單個選擇。在一個簡單的解釋中,當點擊按鈕時,沒有選擇將被應用在列表視圖的行中
如果在輸入按鈕的方法之前應用選擇會很好因爲我需要從listview的單選中獲取信息應該發送給業務邏輯。
private void btnBuy_Click(object sender, RoutedEventArgs e)
{
}
<ListView Height="242.47" Canvas.Left="8" Canvas.Top="49.53" Width="435.22" Name="lstOrder" ItemsSource="{Binding}"
PreviewMouseLeftButtonUp="lstOrder_PreviewMouseLeftButtonUp" SelectionChanged="lstOrder_SelectionChanged"
SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Header="Article Number" Width="auto" DisplayMemberBinding="{Binding Path=_articleNumber}"
TextBlock.TextAlignment="Left"
HeaderContainerStyle="{StaticResource ListViewHeaderRightAlignedStyle}" />
<GridViewColumn Header="Name" Width="auto" DisplayMemberBinding="{Binding Path=_name}"
TextBlock.TextAlignment="Left"
HeaderContainerStyle="{StaticResource ListViewHeaderRightAlignedStyle}" />
<GridViewColumn Header="Sale Price" Width="auto" DisplayMemberBinding="{Binding Path=_salePrice}"
TextBlock.TextAlignment="Left"
HeaderContainerStyle="{StaticResource ListViewHeaderRightAlignedStyle}" />
<GridViewColumn Header="Product Category" Width="auto"
DisplayMemberBinding="{Binding Path=_productCategory}" TextBlock.TextAlignment="Left"
HeaderContainerStyle="{StaticResource ListViewHeaderRightAlignedStyle}" />
<GridViewColumn Header="Quantity" Width="auto" DisplayMemberBinding="{Binding Path=_quantity}"
TextBlock.TextAlignment="Left"
HeaderContainerStyle="{StaticResource ListViewHeaderRightAlignedStyle}" />
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Name="btnBuy" MinHeight="20" MinWidth="50" Content="Buy" Click="btnBuy_Click" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
namespace MediaStore
{
/// <summary>
/// Interaction logic for Counter.xaml
/// </summary>
public partial class Counter : Window
{
private ManagerProduct _myManagerProduct;
private ManagerCart _myManagerCart;
public Counter(ManagerProduct pManagerProduct, ManagerCart pMyManagerCart)
{
this.InitializeComponent();
_myManagerProduct = pManagerProduct;
_myManagerCart = pMyManagerCart;
lstOrder.AddHandler(ListViewItem.UnselectedEvent, new RoutedEventHandler(ItemSelected), true);
UpDateGUI();
}
public void UpDateGUI()
{
FillDataInListView();
}
private void FillDataInListView()
{
lstOrder.DataContext = _myManagerProduct.GetAllProductList();
}
#region Tab Order - 1. Order
private void btnBuy_Click(object sender, RoutedEventArgs e)
{
}
private void btnDisplayCart_Click(object sender, RoutedEventArgs e)
{
}
private void btnCheckout_Click(object sender, RoutedEventArgs e)
{
cvsOrder.Visibility = Visibility.Hidden;
cvsConfirmation.Margin = new Thickness(8, 8, 8, 17);
}
private void lstOrder_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
}
private void ItemSelected(object sender, RoutedEventArgs e)
{
}
private void lstOrder_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
}
#endregion
}
}
1.可以更具體地指出,在類Counter中應該將這個代碼「var data =(sender as FrameworkElement).DataContext as MyData;」應用? – 2011-06-06 17:09:54
2.「MyData」類的名稱? – 2011-06-06 17:10:41
...我注意到代碼屬於按鈕事件處理程序。 'MyData'是你的'ListView.ItemsSource'中的任何類的實例的名稱。 – 2011-06-06 17:18:07