.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
Gaurav Pal
Post New Web Links

WPF, MVVM, Commands from buttons within a Listbox ItemTemplate? (code included)

Posted By:      Posted Date: September 03, 2010    Points: 0   Category :WPF
I want to capture button clicks from within a list item row. Below I have tried to boil the problem down as much as I can. First, here is the xaml <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="test2.MainWindow" x:Name="Window" Title="MainWindow">  <Grid x:Name="LayoutRoot">  <ListView Margin="148,74,0,202" HorizontalAlignment="Left" ItemsSource="{Binding ListData}">   <ListView.View>    <GridView>     <GridViewColumn Header="Item" DisplayMemberBinding="{Binding ItemName}" />     <GridViewColumn Header="Options" Width="200" >      <GridViewColumn.CellTemplate>       <DataTemplate>        <StackPanel Orientation="Horizontal">         <Button Content="Reject" Height="20" Width="80" Margin="5,2" Command="{Binding Commands}" CommandParameter="RejectItem" /> 

View Complete Post

More Related Resource Links

Drag and Drop Events binded to MVVM commands

Hi , I am developing the drag n drop functionality.. I want in my drop event my command from MVVM model should fire.. Can you help me in how to Map Drag drop events  into MVVM by Commands...

Animate listbox items from ItemTemplate

I want to have a slide-in effect for listbox items, when it's first loaded. I'm using ItemTemplate for listbox items and I coule do the slide-in effect from within the template using RenderTransform and DocubleAnimation. but as the Listbox is vertualized, it does the effect everytime new page of data is loaded in listbox. What I want is to animate the visible items in listbox only when DataContext is changed the first time, like messages list in 'Windows Live Mail' thanks in advance.  

XamlParseException thrown when setting ListBox ItemTemplate.

What could be the cause of the issue described below and why is this exception thrown? Having created a DataTemplate like this: <DataTemplate x:Key="{x:Static controls:InternalResourceKeys.ListBoxItemTemplate}" DataType="{x:Type games:GameDefinitionBase}"> </DataTemplate>   I tried to use it as an ItemTemplate in a ListBox:   <ListBox x:Name="list_definitions" HorizontalContentAlignment="Stretch" SelectionMode="Single" ItemTemplate="{StaticResource {x:Static controls:InternalResourceKeys.ListBoxItemTemplate}}"> </ListBox>   where 'InternalResourceKeys' is the following:   static class InternalResourceKeys { static readonly object _listBoxItemTemplate = new object(); public static object ListBoxItemTemplate { get { return _listBoxItemTemplate; } } }   However, the resource lookup throws an exception (pasted at the end). The reason is most possibly this: {x:Static controls:InternalResourceKeys.ListBoxItemTemplate} used as DataTemplate key. What is a bit surprising is that I have already used InternalResourceKeys class as a storage for resource keys in the same application. Thus, the concept of resource keys being retrieved by a static property seems to work. NOTE: when I change all occurences of {x:Static controls:InternalR

WPF: listbox ItemTemplate

We have a list box. Each item is a TextBlock. If the text too long, it will display as Ellipsis "..." at the end inside textblock. if the available list is too long, it will display a vertical scroll bar for the listbox. if the available list can be displayed in one page, the vertical scroll bar will not displayed. We have difine the <ListBox.ItemTemplate> <DataTemplate> <TextBlock Width="610" TextAlignment="Center" TextTrimming="CharacterEllipsis" Padding="3,0" ScrollViewer.HorizontalScrollBarVisibility="Hidden" Foreground="Black" Text="{Binding ProgramName}"/> </DataTemplate> </ListBox.ItemTemplate> The problem with this ItemTemplate, we have to define the textBlock's width in order to align the text content in the center and display the Ellipsis if text content is too long. However the real width is different with/without displaying the vertical scrool bar of listbox. So far we have to base on the vertical scroll bar displayed to decide the textblock's width. Is there someway, we can fix this problem? thx!  

Looking for sample css code to magnify or alter an image buttons bakground when hovering over them


I have a list of buttons in a menu, and when I hover of them, I want something to change, such as a box being drawn around them, or background color chaning.  How do I do that? 

style not applied in ListBox.ItemTemplate


I have a resource dictionary with a style for Borders. The style has a TargetType but no x:Key. The dictionary also has a DataTemplate used as a ListBox.ItemTemplate. The DataTemplate has a Border in it. The Border style is not applied in the ListBox. I assumed that it would be. That is what I want.

What is the simplest way to get the Border style applied in the ListBox.ItemTemplate?


MVVM - Refreshing buttons enable/disable state


Hi everyone... something is working wrong on my MVVM App.

I have a view with the following buttons

    <Button Command="{Binding ShowPlayersCommand}">Show Users</Button>
    <Button Command="{Binding ExitCommand}">Close</Button>

The idea is to show a new window when

MVVM how to move event handler from code behind to ViewModel


First of all I'm fairly new to WPF and MVVM. For learning purposes I created a very simple MVVM test app similar to the one demonstrated here: http://windowsclient.net/learn/video.aspx?v=314683

I am trying to find out how to work with events in the MVVM pattern. To work with events in the xaml code behind is simple. But how to move the code to the ViewModel?

In the xaml I have:

    <StackPanel Background="{Binding BackgroundBrush}">
        <ItemsControl ItemsSource="{Binding AllEmployees}">
                    <StackPanel Orientation="Horizontal">
                        <TextBox Width="100" Text="{Binding FirstName}" />
                        <TextBox Width="100&q

change gridview itemtemplate cssclass from code-behind


I want to pgroammatically change the gridview ItemTemplate properties (mostly CSS Class)

<asp:GridView ID="gvSearchResults" GridLines="None" Width="700px" ShowHeader="False" AutoGenerateColumns="False" DataSourceID="XMLDS" runat="server"><Columns>
<ItemStyle CssClass="WHATEVER" />

So in the gridview rowdatabound event, I want to change the template based on the data for that specific row.

Apart from the data, how can I change the ItemTemplate CSS class for the current row via Code behind?

ItemTemplate + buttons in web part


I am attempting to change a user control into a web part. My user control is not as functional as I need it(connecting web parts). so I have this:

        <asp:TemplateField ShowHeader="False">
            <asp:LinkButton ID="btnAck" runat="server" Text="Ack" CommandName="Ack" CommandArgument

Using MVVM and commands inside of a datatemplate, the command wont execute.

Inside of my main view i have a datatemplate showing off all the items in an observable collection. now inside of that i want to set commanding on a radio button.

outside the datatemplate this works
<Button Height="23" Name="btnUpdate" Command="{Binding UpdateCommand}"

ListBox with buttons - findout which one was pushed




I have class like this :

public class A
  private readonly string _name;
  public A(string n)
    _name = n;
  public string ShowName
    get {return _name;}
  public void DoSmth()
    // Do something

I want to show lis of such objects in ListBox. Also I want button in each line of ListBox and the mechanism to determine wich button was clicked. If I can directly call DoSmth() it would be the best. But I would be very happy if I can even find out the index of this button :)


Now my XAML looks like this:

<UserControl x:Class="MyApp.ClientUI.Controls.MyControl"
 Height="Auto" Width="Auto">
    <StackPanel x:Name="sp" Orientation="Horizontal">
     <ListBox Grid.Row="0" x:Name="lstMy">
        <StackPanel Orientation="Horizontal">
         <TextBlock VerticalAlignment="Center" Margin="5" Foreground="White" FontSize="17" FontFamily="Calibri" Text="{Binding Path=ShowName}" /&g

Find control TextBlock inside Listbox.ItemTemplate

Hello, I'm a big question, I have a XAML code, where it i
insert a TextBlock to the name "tbNomeHotel" but I can not
call it in C # code, for example: string = xxx tbNomeHotel.Text;

this only happens when the TextBlock is between the tags, and <ListBox.ItemTemplate> <DataTemplate>, which make the data come directly from the database and are displayed in a list.

below is the XAML code, where the bank's value is displayed in a ListBox, if the name of a hotel either!

I like to refer to the TextBlock component in my C # code, so I can use it as a parameter for other queries??

eg>> string xxx = tbNomeHotel.Text;



Name = <StackPanel "stkPanel" Orientation="Horizontal" Width="419">


How to make a TreeView's and ListBox's SelectedItem stay in sync? (in an MVVM app)



I'm certain this has come up before, but I haven't been able to find the answer.

I made a basic ViewModel that contains a list of People (an array of Person) with a property called SelectedPerson, which naturally points to the currently selected Person in the list of People. I also have a ListBox and a TreeView that are databound to the ViewModel's People list.

What I'd like to do is to keep the ListBox's SelectedValue and TreeView's SelectedItem in sync with with the ViewModel's SelectedPerson. The idea is that no matter how the SelectedPerson is modified (through a control, through code, etc), all the controls should update themselves properly by selecting the correct item. I can get it to work with two ListBoxes, which is nice, but I can't get it to work with a ListBox and a TreeView because the TreeView's SelectedItem is readonly and apparently unavailable through XAML.

Where should I look to get ideas on making this work?

Also note that I'm trying to make this work in pure XAML. No code-behind as XAML files in my application can be loaded and changed dynamically.


Get ContentPresenter from Code in listbox with hierachicaldatatemplate



I'm trying to get the contentpresenter from an item in my listbox which has a Hierarchicaldatatemplate as its ItemTemplate.

This line works perfectly:

ContentPresenter cp = listBoxMain.ItemContainerGenerator.ContainerFromItem(newTodo) as ContentPresenter;


But only for my rootItems, for child items the "cp" will always be null. Is it possible to get the contentPresenter for child items?


The structure of the HierachicalDataTemplate is like this:

<HierarchicalDataTemplate x:Key="MyTemplate">
  <!--things for the root items-->
   <ItemsControl x:Name="subItems" ItemTemplate="{DynamicResource MyTemplate}"/>



while running the code buttons are not appearing on form


i wrote a copy web service i added two web reference first for list and second for copy i took two buttons on first click i wrote a code for getting address of attachments  and on second click i wrote copy functionality for copying some attachments into another list in 2 different site now my code is error free  but while running i am not getting buttons on form my code is- 




public partial class Form1 :

WPF: If Heineken did MVVM Frameworks Part 4

MVVM is to have an instance of a particular Model (say currentPerson) inside my ViewModel (say PeopleViewModel) which is exposed to the View (say PeopleView). The View binds and edits the Model directly.

This definitely flies in the face of what most people consider to be the holy grail of MVVM pattern, but it's a fairly new pattern, so people are still finding their way with it every day, and this works for me very well. The reason I do what I do, is for the following reasons:

1.I have always had the luxury of being able to write my own UI specific Model classes. I would even do this if I was using some other Model classes first, such as LINQ to SQL or LINQ to Entity Framework. As these classes don't have everything a proper WPF Model class needs in my humble opinion. Though, they are pretty good, as they are Partial classes and use INotifyPropertyChanged/DataContract etc etc
2.I am a pragmatist and I do not like writing code for the sake of writing code. I have seen some MVVM apps where the author has had a Model with 50 properties on it, that are simply repeated in the ViewModel abstraction, where the ViewModel added nothing. On that day I decided I would never do that unless I have to.
3.I honestly see no harm in writing directly to the Model from the View, JUST SO LONG AS if the Model is InValid its data NEVER makes its way to the database. I honestly see no pro
ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend