How to use double click trigger in ListBoxItem template?

Hi all,
I want to double click listBoxItem in listbox, and set this item as editable status. It says make textbox as visible, please see the below code. When press Enter key or lost focus, then make textbox as invisible and textblock as visible. It's better to use
trigger to switch the status, but I do not know how to do it, thanks!
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Grid>
<TextBlock Text="{Binding FirstName}" />
<TextBox Text="{Binding FirstName}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>

Did you consider using a DataGrid? This control has editing capabilities built-in:
https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid(v=vs.110).aspx
Otherwise you could add a boolean property to the class with the FirstName property, toggle this one in an event handler for the MouseDoubleClick event of the ListBoxItem and then use data triggers. Here is an example for you that should give you the
idea:
<ListBox x:Name="lb1">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<EventSetter Event="MouseDoubleClick" Handler="OnMouseDoubleClick"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock x:Name="tb" Text="{Binding FirstName}" Visibility="Visible"/>
<TextBox x:Name="tx" Text="{Binding FirstName}" Visibility="Collapsed"
LostKeyboardFocus="tx_LostFocus" PreviewKeyDown="tx_PreviewKeyDown"/>
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsInEditMode}" Value="True">
<Setter TargetName="tb" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="tx" Property="Visibility" Value="Visible"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
public MainWindow()
InitializeComponent();
List<YourItem> myDataType = new List<YourItem>()
new YourItem{ FirstName = "Name..."}
lb1.ItemsSource = myDataType;
private void OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
ListBoxItem lbi = sender as ListBoxItem;
YourItem item = lbi.DataContext as YourItem;
if (item != null)
item.IsInEditMode = !item.IsInEditMode;
private void tx_LostFocus(object sender, RoutedEventArgs e)
TextBox txt = sender as TextBox;
YourItem item = txt.DataContext as YourItem;
if (item != null)
item.IsInEditMode = false;
private void tx_PreviewKeyDown(object sender, KeyEventArgs e)
if (e.Key == Key.Return)
e.Handled = true;
TextBox txt = sender as TextBox;
YourItem item = txt.DataContext as YourItem;
if (item != null)
item.IsInEditMode = false;
Make sure that your model class implements the INotifyPropertyChanged interface correctly:
public class YourItem : INotifyPropertyChanged
public string FirstName { get; set; }
private bool _isInEditMode;
public bool IsInEditMode
get { return _isInEditMode; }
set { _isInEditMode = value; NotifyPropertyChanged("IsInEditMode"); }
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName)
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
Hope that helps.
Please remember to close your threads by marking helpful posts as answer and then start a new thread if you have a new question. Please don't post several questions in the same thread.

Similar Messages

  • How to have double click on trackpad in Lion?

    I am not sure how to enable double click on trackpad in apple as i am used to?

    In the Trackpad option of System Preferences, just select Secondary click in the Point & Click panel, then you have choice between different options.

  • FRM-40735 when mouse double click trigger raised unhandled exceptiORA-01722

    I am using Forms 10g.
    i am writting a procedure in When mouse double click trigger that will display all the values available for ip address from this procedure.
    The procedure is
    DECLARE
    CURSOR cr
    IS
    SELECT LEVEL NUM
    FROM DUAL
    CONNECT BY LEVEL<=(Select max_range from t_ip_address_dtl where category_name=:t_item_cpu.category and block_name =:block_head.block)
    MINUS
    SELECT TO_NUMBER(SUBSTR(IP_address, 12))
    FROM T_item_cpu;
    abc number(4);
    abc1 number(4):=null;
    BEGIN
    FOR rec IN cr LOOP
         abc1 := abc1 || ',' || rec.num;
    END LOOP;
    Message('You can use between these nos: '||abc1);
    Message('You can use between these nos: '||abc1);
    END;
    It is showing this error :-

    Yes bye mistakly i posted ,, due to internet problem..

  • How to avoid double-click to click-box

    Hello,
    until now I did not find a solution for this problem:
    I have created a training course for a specific application, and in this coure are some click boxes on which the user should click. On many click boxes should the user click only once but if he double-click the click box, in real application nothing happens. There is only one way to succes the action - one click. But in captivate when the user double-click the click box instead of one click it evaluate as success action (the click box is set only to one click, double-click checkbox is not checked).
    So my question is, is there any way how to avoid double-click in cases where the user should click only once? Or in case he double-click the click box to show failure caption?
    Many thanks.
    Lukas

    Hi all
    Interesting thread. Unfortunately, what would be needed here is some sort of a widget that would run some internal timer. Sure, you can try multiple Click Boxes and configure one with a Single Click and one with a Double Click. But the problem with that (as I see it) is regardless of what you might try, the Single Click will win out every time. Thus you would need a widget of some sort that would "listen" for a Double Click and respond appropriately.
    Tough call... Rick
    Click here for Adobe Authorized Captivate and RoboHelp HTML   Training
    Click here for the SorcerStone Blog
    Click here for RoboHelp and Captivate eBooks

  • How to handle double click in a table control?

    Hi,
    Can any one let me how to handle double click event in a table control in dialog programming?
    here i need to navigate to another screen when user double click on the table contols (emp number column).
    thanks in advance,
    PrasadBabu.

    to define double click in your table controlwhich is similar to 'PICK' function. Enable F2 in PF-status for this
    Table Control Question
    Check the above thread which was posted recently on SDN, please award points if found helpful

  • How to handle double click event in a text control

    Hi,
       Will u please send me information on handling double click events inside text control and also about locking and unlocking of DB tables for updation.
    Regards,
    Praba.

    Hi Prabhavathi,
    Here is how you handle double click events in Textedit control.
    1)Create a custom control in screen (say TEXT_CONTROL)
    2)In main program,
    a) Declarations:
    data: obj type ref to cl_gui_custiom_control.
          text type ref to cl_gui_textedit.
    b) Create the instance of custom container
    c) Create the instance of textedit control.
    3)Now to handle double click events , create a local class as follows.
    class shail_event definition.
    public section.
    methods:
    handle_doubleclick for event dblclick of cl_gui_textedit .
    endclass.
    class shail_event implementation.
    method handle_doubleclick .
    here do the coding for handling the double click.
    endmethod.
    endclass.
    4) Create an instance of the handler class(ie.ZSHAIL_EVENT).Let it be named hand.
    5) Define varibles for event.
    DATA: i_events TYPE cntl_simple_events,
          wa_events TYPE cntl_simple_event.
    SET HANDLER hand->handle_doubleclick for text.
    wa_events-eventid = cl_gui_textedit=>event_double_click.
    wa_events-appl_event = 'X'. "This is an application event
    APPEND wa_events TO i_events.
    6)
        CALL METHOD texte->set_registered_events
          EXPORTING
            events                    = i_events
          EXCEPTIONS
            cntl_error                = 1
            cntl_system_error         = 2
            illegal_event_combination = 3
            OTHERS                    = 4.
        IF sy-subrc <> 0.
         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
    These are the basic steps needed for handling events in Textedit control.You can go to SE24 and type CL_GUI_TEXTEDIT to find the associated events of the class.
    If you want the program, kindly send your mail-id so that I can mail it to you.
    Regards,
    Sylendra.

  • How do I double-click with a track-pad?

    I'm new to Mac, and I just bought a beautiful new Apple MacBook laptop. I'm trying to install academic version of Adobe Photoshop 6 (this disk of software was originally made for PCs but I hear it's possible to make it work on a MacBook as well. My question is, how do I double-click with a track-pad, like in order to install new software from actual disks? I'm a multi-media artist and student, among other things. Thanks!
    Apple MacBook   Mac OS X (10.4.4)  

    Hi -
    Double clicking is done by going to System Preferences/Keyboar and Mouse/Trackpad and then selecting the action you'd like.
    However, PS 6 will be more of a task!
    If it's a Windows disc then you'll need to install a Windows XP on your Macbook either through Parallels or Bootcamp.
    Perhaps another 'Mac Friendly' graphics program might be more suiting if you'd like to stick in with the Mac OS X enviornment. Check out these apps....
    http://pure-mac.com/graph.html
    btw, Bootcamp is free!
    Macbook 1.8-)   Mac OS X (10.4.8)   Week 38 base model w/1G Ram

  • Why I can't use double click to open files, pics and videos?

    I had bought new retina macbook pro 15 in, everething was working perfect I was open files, pics, videos with double click in the mouse pad normally but I do not why now is not working I can not use double click in the pad for open files. I have to open it using two finguer click or right click and then click open or open with, why is that happening?

    in system preference i had select (tap to click) with one finguer, (secundary click) click or tab with two finguers, tracking speed fast and in the mouse preference I had select (tracking speed, scrolling speed, double click) fast and primary mouse button left.

  • How to use application item in the page template

    How to use application item in the page template.
    Thanks,
    rajendra

    Hi,
    You can refer application item value in template like &MY_ITEM. (note period at end)
    http://docs.oracle.com/cd/E37097_01/doc/doc.42/e35125/concept_sub.htm
    Regards,
    Jari

  • How  can I start my Java Application using double-click  in Windows XP?

    I hava developed an editor in java. The file made by this editor is saved as the .cte format. so, I need to associate this file with the editor, which means that when you double click the .cte file ,this file will be opened in the editor just like the notepad.
    I know that Jbuider has used the JNI to achieve this way to open a project. So, will you kindly tell me the details about this technique or give me some document? My E_Mail is [email protected]
    Best Regards,
    Maria

    I think this can be done from a batch file which you can execute when you install your application.
    There are two commands which you are interested in, and they are:
    assoc - Displays or modifies file extension associations.
    ftype - Displays or modifies file types used in file extension associations.
    You should use assoc to associate an extension with a file type, and ftype to associate the file type with an application.
    E.g. jar is associated with this on my machine:
    .jar=jarfile (from assoc)
    jarfile="C:\Program Files\Java\jre1.5.0_06\bin\javaw.exe" -jar "%1" %* (from ftype)
    Kaj

  • How can i start my java application using double-click in WindowsXP?

    i hava developed an editor in java. The file made by this editor is saved as the .cte format. so, I need to associate this file with the editor, which means that when you double click the .cte file ,this file will be opened in the editor just like the notepad.
    I know that Jbuider has used the JNI to achieve this way to open a project. So, will you kindly tell me the details about this technique or give me some document? My E_Mail is [email protected]
    Best Regards,
    Maria

    Must you use native code? Can't you do what I said in your other thread?
    http://forum.java.sun.com/thread.jspa?threadID=699476
    Kaj

  • How to make Double Click To Edit work instead of ClickToEdit for Af:Table

    Hi All,
    We use AF:Table in clickToEdit mode and most of the time the users use this table for selecting a master record then work on the detail records. To avoid the cost of rendering the selected row as editable we would like to change the behavior to Double Click To edit. This way the user can intentionally put the selected row in edit mode when needed. What would be the best approach to achieve this ?
    We use 11.1.1.6 and ADF BC.
    Thanks

    Not sure if you can get it to work in 11.1.1.6.0 as you don't have the ActiveRowKey property which can be used to make a table row editable. The property comes with 11gr2.
    What you can try is to set the tabel to clicktoedit, add a clientListener which you use to listen to the click event and then cancel the event. Add another clientListener whihc handles the doubleClick event, make the clicked row the current row (see http://www.oracle.com/technetwork/developer-tools/adf/learnmore/56-handle-doubleclick-in-table-170924.pdf) and, well now comes the problem, make the current row editable. I don't know how to do this without the ActiveRowKey property.
    One other possible solution is a trick described here http://dstas.blogspot.com/2010/08/press-edit-button-to-make-table-row.html
    here a transient attribute is used to manipulate the isEditable() status of an attribute of the VO. This should do the trick, but is much more work.
    May be someone else knows a better solution.
    Timo

  • Use mouse click trigger option more than once?

    Hi, is there some way to use the "mouse click" trigger option more than once in the project? I am trying to build a menu button animate where the users click the (menu grid icon) once, and it transforms into the (x icon) and stays there until they click it again ONCE to change it back to the (menu grid icon). Other trigger actions aren't ideal, and I find that if I used the "double mouse click", the response gets a bit messy as clicking once would replay the whole sequence again. Thanks!

    At CreationComplete make a var as:
    button = -1;
    At click event of the button write:
    if (button == -1){
    sym.getSymbol("nmnmnmn").play("xicon");   // if you have a trigger in timeline to make this action that you want
    button++;
    else {
    sym.getSymbol("nmnmnmn").play("returnedicon");
    button = -1;
    Somehow like the above you'll have to do it.
    Or else you can use boolean , TRUE/FALSE

  • How to handle double click on af:table ?

    ..... I use JDev 11g .......
    I have an af:table I want when I double click on row in this table I execute a method in backing bean.
    ( I know there is a selectionListener in table but this for single click I want a method call only if I double click on the table )
    How can I do that?
    Thank You...
    Sameh Nassar

    You may use this method.
    1. Register a client listener on the table:
    <af:clientListener type="dblClick" method="doDbClick"/>
    The method doDbClick is a javascript function:
    <trh:script>function doDbClick(event) { 
    var source = event.getSource();
    AdfCustomEvent.queue(source,"doDbClick", {}, false);
    </trh:script>
    2. Register a server listener on the table to consume this custom event:
    <af:serverListener type="doDbClick" method="#{backingBeanScope.txnBean4.doDbClick}"/>
    The java method:
    public void doDbClick(ClientEvent event){
    // do whatever u want
    Colin

  • How to use 'right click' command of windows in mac firefox

    how do i use the windows 'right click commands in mac firefox
    == This happened ==
    Every time Firefox opened
    == begining

    http://kb.mozillazine.org/Ui.click_hold_context_menus
    type '''about:config''' in the URL bar and hit Enter
    Pref Name = '''ui.click_hold_context_menus'''
    Double-click to Toggle to '''True'''

Maybe you are looking for

  • How can i sync email deletions on my iPhone and iMac, and vice versa?

    My email provider is Sky in the UK. While i am able to receive the same emails on both devices (imac and iphone) simultaneously, if I delete one on the iphone, it is not deleted on the iMac, and vice versa. I don't want to have to delete emails twice

  • How can I test my discrete graphics card in an MBP Retina?

    How can I test the hardware on the discrete Nvidia grpahics card in my late 2012 MBP Retina?  I've had a *lot* of problems with it which I won't repeat here but the latest fun thing it's doing is crashing and requiring a hard reset any time *anything

  • Large mail box (87GB total) how can I delete the data?

    I have a mail box that has a total of 87GB of data. The content is no longer needed. How do I delete the content but not the mail box? 

  • Top level configuration

    Hello, I am newbie in the portal admninistration and I'd like to reorganize the top level navigation in the portal (containing for example the "Portal content" thumbnail + my custom roles). I'd like to sort the 1st level by alphabetical order. How ca

  • PS RRB not quantity on billing request DP91

    Hi, I am doing Resource Related billing using PS-SD. I have configured the DIP profile. When using DP91 I am getting cost value of each material service that is fine; however I am not able to see quantity. When doing dp91 I get the quantity field emp