.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc



.. _wx.dataview.DataViewItemObjectMapper:

==========================================================================================================================================
|phoenix_title|  **wx.dataview.DataViewItemObjectMapper**
==========================================================================================================================================

This class provides a mechanism for mapping between Python objects and the
:class:`DataViewItem` objects used by the :class:`DataViewModel` for tracking the items in
the view. The ID used for the item is the id() of the Python object. Use
:meth:`ObjectToItem` to create a :class:`DataViewItem` using a Python object as its ID,
and use :meth:`ItemToObject` to fetch that Python object again later for a given
:class:`DataViewItem`.

By default a regular dictionary is used to implement the ID to object
mapping. Optionally a WeakValueDictionary can be useful when there will be
a high turnover of objects and maintaining an extra reference to the
objects would be unwise.  If weak references are used then the objects
associated with data items must be weak-referenceable.  (Things like
stock lists and dictionaries are not.)  See :meth:`UseWeakRefs`.

This class is used in :class:`PyDataViewModel` as a mixin for convenience.
            




|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>DataViewItemObjectMapper</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.dataview.DataViewItemObjectMapper_inheritance.png" alt="Inheritance diagram of DataViewItemObjectMapper" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.dataview.DataViewItemObjectMapper.html" title="wx.dataview.DataViewItemObjectMapper" alt="" coords="5,5,296,35"/> </map> 
   </p>
   </div>

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.dataview.DataViewItemObjectMapper.__init__`                           
:meth:`~wx.dataview.DataViewItemObjectMapper.ItemToObject`                       Retrieve the object that was used to create an item.
:meth:`~wx.dataview.DataViewItemObjectMapper.ObjectToItem`                       Create a :class:`DataViewItem` for the object, and remember the ID-.obj mapping.
:meth:`~wx.dataview.DataViewItemObjectMapper.UseWeakRefs`                        Switch to or from using a weak value dictionary for keeping the ``ID`` to
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: wx.dataview.DataViewItemObjectMapper(object)

   This class provides a mechanism for mapping between Python objects and the
   :class:`DataViewItem` objects used by the :class:`DataViewModel` for tracking the items in
   the view. The ID used for the item is the id() of the Python object. Use
   :meth:`ObjectToItem` to create a :class:`DataViewItem` using a Python object as its ID,
   and use :meth:`ItemToObject` to fetch that Python object again later for a given
   :class:`DataViewItem`.
   
   By default a regular dictionary is used to implement the ID to object
   mapping. Optionally a WeakValueDictionary can be useful when there will be
   a high turnover of objects and maintaining an extra reference to the
   objects would be unwise.  If weak references are used then the objects
   associated with data items must be weak-referenceable.  (Things like
   stock lists and dictionaries are not.)  See :meth:`UseWeakRefs`.
   
   This class is used in :class:`PyDataViewModel` as a mixin for convenience.
               



   .. method:: __init__(self)






   .. method:: ItemToObject(self, item)

      Retrieve the object that was used to create an item.





   .. method:: ObjectToItem(self, obj)

      Create a :class:`DataViewItem` for the object, and remember the ID-->obj mapping.





   .. method:: UseWeakRefs(self, flag)

      Switch to or from using a weak value dictionary for keeping the ID to
      object map.




