2012-11-07 48 views
0

我有一個顯示使用MVVM &自定義模板和點擊帳戶名稱做工精細 現在,我們需要執行要求當前會計對象自定義操作帳戶的列表一個ListViewWPF綁定如何獲得對象的引用

有沒有辦法將Label.Tag屬性設置爲Acct對象?

的XAML高清低於 ENV是VS2010 .NET 4.0 C#

<ListView Name="lv1" Grid.Column="1" Grid.Row="4" 
    ItemsSource="{Binding AccountsList}" 
    Background="Transparent" BorderThickness="0"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <Image Source="/asm1;component/Images/Icons/pdf1.png" Width="12" Height="12" /> 
       <Label Content="{Binding Name}" Margin="0,0,25,0" 
        ContextMenu="{x:Null}" Name="lblacctItem" 
        MouseDoubleClick="lbl_MouseDoubleClick" /> 
      </StackPanel> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
    <ListView.ItemsPanel> 
     <ItemsPanelTemplate> 
      <WrapPanel Background="Transparent" 
       Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}" 
       ItemWidth="{Binding (ListView.View).ItemWidth, RelativeSource={RelativeSource AncestorType=ListView}}" 
       MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}" 
       ItemHeight="{Binding (ListView.View).ItemHeight, RelativeSource={RelativeSource AncestorType=ListView}}" /> 
     </ItemsPanelTemplate> 
    </ListView.ItemsPanel> 
</ListView> 
+0

'MouseDoubleClick =「lbl_MouseDoubleClick」'是不是一個好方法,在這裏你將要在代碼來實現背後的商業邏輯,它是對MVVM原則。如果你想堅持使用MVVM模式,可以考慮使用Commands。 – HichemSeeSharp

回答

1

你混合MVVM和後面的代碼。

您應該創建一個命令行爲(Link)來標記。然後,您應該將CommandParameter綁定到AccObject,並將Command命令綁定到您需要執行的操作。

應該刪除以下內容。

MouseDoubleClick="lbl_MouseDoubleClick" 

更新按照評論

作爲當前項被綁定到AccObject,只需在命令參數中使用綁定。

CommandParameter = {Binding} 
+0

如何獲取AccObject是問題 – Kumar

+0

更新的響應。 – Tilak

1

可以SelectedItem屬性設置爲視圖模型的SelectedAccount財產。

的SelectedItem = 「{結合SelectedAccount}」 背景= 「透明」 了borderThickness = 「0」>

上SelectedAccount屬性使用INotifyPropertyChanged接口。

感謝, Rajnikant