.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: listbox ItemTemplate

Posted By:      Posted Date: September 08, 2010    Points: 0   Category :WPF
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!  

View Complete Post

More Related Resource Links

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

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" /> 

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

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?


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">


ListBox tricky to set in a DataGrid/GridView

Listboxes are very tricky to set selected items in grid - there is no real nice way to do it. It would have been great if Microsoft included a property that accepts an array or comma separated values - or anything! But they only allow each item in the list to be selected individually. The way to do this in a grid is a bit messy, but it is fairly simple to implement. When a row is created (as per the event), select the items of the listbox as per the datagrid source data:

Working with DropDownList and ListBox Controls in ASP.NET

"In my application i am using dropdownlist to display all categories from a table. When the user clicks this control I display all records in that category. Category table also contains column called color.

I wanted display some categories in dropdown list different color and others in different color using ASP.NET."-Anonymous

Textbox in ItemTemplate inside Gridview, unable to get the value


Hi. I have a itemtemplate inside a gridview.

<asp:TemplateField HeaderText="Enter OTP">
                            <asp:Label ID="Label2" runat="server"
                                style="font-family: Arial, Helvetica, sans-serif; font-size: x-small"
                                Text="PIN Num:"></asp:Label>
                            &nbsp;<asp:TextBox ID="txtPIN" runat="server" Height="21px" Width="100px"></asp:TextBox>

Persist data in a dynamically populated ListBox in a user control


Hi All,

I am trying to persist data in a dynamically populated ListBox in a user control. Here are the details

I have a user control which contains a a listBox and button. On Page_Load of user control I am populating the ListBox control with some values. On Click of button, I am trying to fetch the values which I have selected in ListBox. Though this seems very simple and straight forward I am unable to fetch values.

My Page_Load Function

void Page_Load(object sender, EventArgs e)










My Click Function

Protected Void Button1_Click(object sender, EventArgs e)


       string strValue = listBox.SelectedValue



I have placed brake point at Page_Load and on click function, I am seeing that the moment the breakpoin

ActiveX and Visual Basic: Enhance the Display of Long Text Strings in a Combobox or Listbox


The combobox and listbox controls in Visual Basic have no built-in support for displaying text strings that are too long to fit in the visible area of either control. This article describes several techniques to improve the readability of long strings in each control. The first technique uses tooltips to display a combobox or listbox item. The other techniques, which use various Windows APIs, include adding a horizontal scrollbar for a listbox and determining the necessary width of the longest string given the font attributes of the text. The required steps are described for both comboboxes and listboxes.

John Calvert

MSDN Magazine December 2000

setting scroll position for a ListBox


I have a ListBox control showing 10 rows.  I have 30 rows total in the listbox.  How do I programmatically adjust the scroll to show the last ten rows?

Some sources have suggested that I set the SelectedItem.  But I am already making selections (myListBox.Items[28].Selected = true, myListBox.Items[29].Selected = true, etc); the listbox scroll is positioned on Item[0] not the first selected item.  I have also tried setting myListBox.SelectedItem in addition to the multiple selection just mentioned but that does not have any affect either.


how can i display the selected value of dropdownlist from edittemplate to label from itemtemplate?


I have a detailsview with a dropdownlist in it. the detailsview is connected to a database table(employees having the following fields: id-smallint,name-nvarchar, departmnet-smallint). the ddl is connected to another table (departments with the following fields: id-smallint, departmentName-nvarchar). the ddl is in the edititemTempalte of the department field. My goal is to display in  the itemtemplate the departmentName (the selected value from the edititemtemplate ). How can I do this? Doyou have any ideas?

thanks a lot

Filter a listbox with textbox


So i currently filter the listbox with some javascript i have found.
What it does is going to the item i type on the textbox.
It will not filter the listbox so it will contain the specific matches.
I was reading for autocomplete but i don't seem to find this 2 way usage.
I was also reading this article:
But i'm completely lost on how i can implement it.
Any ideas?

How to reference a listbox from a procedure


I have a listbox that gets loaded from a couple of different places on my web form.

I would like to put the code to load the listbox in one place, rather than have two copies of it.

The problem is, I can't figure out how to reference the listbox control successfully from within a procedure.

Would anyone know how to do this?

My code looks like this:

private static bool LoadSubscriptionListBox(System.Web.UI.Page Page)
        bool bReturn = false;

        // Clear the listbox

        // Load the listbox



How to format an ItemTemplate value on a gridview control


I have the following in a GridView control:

<asp:TemplateField HeaderText="Count">
         <asp:Label id="lblicount" runat="server" Text='<%# Eval("icount") %>'>

Sometimes the value of this is 0.  I want to display nothing or a blank if the value is 0.  How do I do this?



jQuery modified ListBox not posting back modified values


Hi everyone,

I have an ASP.Net ListBox that I'm trying to populate via jQuery, using the following snippet:

        $("#MyList_btnAddAll").click(function(e) {
        $('#MyList_lstAll option').appendTo('#MyList_lstSelected');

The code has two ListBoxes in fact, one a "source" and the other a "destination".  As you can tell above the ListBoxes are MyList_lstAll and MyList_lstSelected.  These are rendered in the browser as <select> elements, as you'd expect.

The jQuery is working great, the items are moving from one ListBox to the other, the DOM is updated but when I submit this form (not using jQuery), the ListBoxes don't reflect this change on postback. 

I realize my modifications via jQuery aren't available in ViewState but I thought since the DOM was updated these changes would be part of the postback data?  But in the codebehind after postback the ListBox contents haven't changed.  Does anyone know what might be going on and what I can do about it?  Many thanks.

How to create a dynamically populated items in a listbox and use it as a navigation?

Hello, I am trying to create navigation inside a listbox menu. I load data from xml to populate a list. Each item in the list box should be a link or button. Then, I create a frame to load xaml pages in it. I tested to load pages employing button control, outside listbox with on click event and it worked well. However, I cannot make it work with list box items. I am hoping to get help from you. Any sample or ideas are highly appreciated. Below is the code:  XML: <?xml version="1.0" encoding="utf-8"?> <Pages> <page id="page01"> <name>Page 01</name> </page> <page id="page02"> <name>Page 02</name> </page> </Pages> C# to initiate a click o n listbox item and get the path to page: private void SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { ListBoxItem lbi = ((sender as ListBox).SelectedItem as ListBoxItem); string itemName = lbi.Content.ToString(); if ( Nav_ListBox.SelectedItem.Equals("Page01" ) ) { ContentFrame.Source = new Uri("Pages/Page01.xaml", UriKind.RelativeOrAbsolute); } } XAML:  <ListBox x:Name="Nav_ListBox" Margin="0" ScrollViewer.HorizontalScrollBarVisibility="Hidden" Background="#FFF2F2F2" ItemTemplate="{DynamicReso
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