Skip to main content

mvvm double click event in listview


If you want to get the double click event on a listview item you can try with this code;



  <ListView Grid.Row="0"  
                Grid.RowSpan="3"  
                Grid.Column="0"  
                Width="250"  
                Height="200"  
                HorizontalAlignment="Stretch"  
                VerticalAlignment="Top"  
                AlternationCount="2"  
                BorderBrush="#FFA8CC7B"  
                ItemContainerStyle="{StaticResource alternatingStyle}"  
                ItemsSource="{Binding FromPayerNameList}"  
                SelectedItem="{Binding SelectedFromPayer, Mode=TwoWay}">  
             <ListView.ItemTemplate>  
               <DataTemplate>  
                 <TextBlock Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}}" Text="{Binding cpayername}">  
                   <TextBlock.InputBindings>  
                     <MouseBinding Command="{Binding DataContext.PrayerSingleLeftToRightMove, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" CommandParameter="{Binding .}" MouseAction="LeftDoubleClick" />  
                   </TextBlock.InputBindings>  
                 </TextBlock>  
               </DataTemplate>  
             </ListView.ItemTemplate>  
           </ListView>  


If you want to multiple text binding on listview you can try this:

   <ListView Grid.Row="0"  
                Grid.RowSpan="3"  
                Grid.Column="0"  
                Width="300"  
                Height="200"  
                HorizontalAlignment="Stretch"  
                VerticalAlignment="Top"  
                AlternationCount="2"  
                BorderBrush="#FFA8CC7B"  
                ItemContainerStyle="{StaticResource alternatingStyle}"  
                ItemsSource="{Binding FromBinNameList}"  
                SelectedItem="{Binding SelectedFromBin, Mode=TwoWay}">  
             <ListView.ItemTemplate>  
               <DataTemplate>  
                 <TextBlock Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}}">  
                   <TextBlock.Text>  
                     <MultiBinding StringFormat="{}{0} | {1}">  
                       <Binding Path="cbinno" />  
                       <Binding Path="cinsplanname" />  
                     </MultiBinding>  
                   </TextBlock.Text>  
                   <TextBlock.InputBindings>  
                     <MouseBinding Command="{Binding DataContext.BinSingleLeftToRightMove, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" CommandParameter="{Binding .}" MouseAction="LeftDoubleClick" />  
                   </TextBlock.InputBindings>  
                 </TextBlock>  
               </DataTemplate>  
             </ListView.ItemTemplate>  
           </ListView>  

Comments

Popular posts from this blog

WPF datagrid cell textbox change event

Entity/Class: public class FeesDetails : INotifyPropertyChanged { public int Id { get; set; } public string FeesName { get; set;} public string FeesDetailsName { get; set; } public int? PaidAmount { get; set; } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(System.String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } public int feesAmount { get; set; } public int FeesAmount { get { return this.feesAmount; } set { if (value != this.feesAmount) { this.feesAmount = value; NotifyPropertyChanged("FeesAmount"); } } } } XAML: <DataGrid AutoGenerateColumns="False" Height="21...

The calling thread must be STA, because many UI components require this.

Using Thread: // Create a thread Thread newWindowThread = new Thread(new ThreadStart(() => { // You can use your code // Create and show the Window FaxImageLoad obj = new FaxImageLoad(destination); obj.Show(); // Start the Dispatcher Processing System.Windows.Threading.Dispatcher.Run(); })); // Set the apartment state newWindowThread.SetApartmentState(ApartmentState.STA); // Make the thread a background thread newWindowThread.IsBackground = true; // Start the thread newWindowThread.Start(); Using Task and Thread: // Creating Task Pool, Each task will work asyn and as an indivisual thread component Task[] tasks = new Task[3]; // Control drug data disc UI load optimize tasks[0] = Task.Run(() => { //This will handle the ui thread :The calling thread must be STA, because many U...