Xamarin forms collection view minimum number of items - xamarin.forms

I'm working with a CollectionView with a grid items layout. I would like to know if there's a way to show like empty "squares" (boxView/absoluteLayout...) depending on a minimum number of a source items (binding it using MVVM).
I want something like this:
The minimum number would be 14, my items source has a length of 8, I add 6 "empty squares".
Is it possible to do something like this easily?

You need two DataTemplates: one for the monkeys, the other for the empty box.
Make an interface ISquare, and implement it in a MonkeySquare and and EmptySquare.
Make the binded List of type ISquare and add 8 MonkeySquares and 6 EmptySquares.
In your Xaml make a DataTemplateSelector where you check if its the Cell is a MonkeySquare or a EmptySquare and return the belonging DataTemplate.
For more information regarding DataTemplateSelectors visit the official doc.

Related

Inserting QTable in QTree

I would like to design a particular layout using QTable inside of QTree. See the followng wireframe :
Is it possible to do this, knowing that in number :
The first node under Dialog 1 is seperated in 3 (or maybe four). The time, followed by an avatar icon, followed by a blue bubble with text and followed by a number (in my exemple, 75) So, first question, is it possible to have a tree node separated in four?
Section 2 is composed of leaf nodes and these nodes are QTable. So, question number 2, is it possible to create QTable embedded inside a QTree?
You can use the setItemWidget function in order to set the widget you wish for every tree widget item you wish.
In case of a QTreeView you should use the setIndexWidget function.

Views - column display

Hello
I want to show nodes to the columns, depending on their term.
Is it possible via single view (term with depth arg)?
It will be rather complicated to achieve this result using a single view. On the other hand, you could easily set up Panels and a view pane that gets some arguments from the pane's column container. There you could set the different terms you want to show in that column.

Reorder Entity Properties

I have an Entity (Extensions) with a number of properties (e.g. id, extension, prefix) and a few navigation properties (phones_departments, phones_buildings) - they show up in the order they display in the EDMX...but what if I want them to display in a different order? I'm using Dynamic Data - is there a way to accomplish this?
are you showing your data in a grid?
if yes, you could sort grid columns based on some other property. You could for example have a ColumnOrder property in your data store and update that. The code to sort the columns varies per grid, but it is usually easy to do.
Main point being is that you want to modify the display level logic, not the way the actual object is created. since your order can always very per application.

Flex 4 How do I access a specific cell by index?

I would like to edit a cell by the row and column indexes so essentially do the following:
advDataGrid[2][3] = "Dogs"
so that I am setting the data grid row 2 and column 3 to Dogs. I cannot for the life of me figure out how to do this!
Side note: I need this because I am trying to allow the user to copy a section of an excel file to a section of an AdvancedDataGrid like Google Docs does. I am using this idea to do it: http://mannu.livejournal.com/348299.html
Thanks! Any help will be greatly appreciated!
In general you want to operate on the dataProvider rather than the presentation (AdvancedDataGrid). So in your case, I would get the item associated with the specified row from your dataProvider and modify whichever element is specified to "Dogs". So something like this: adg.dataProvider[row].someColumnData = "Dogs"
EDIT: "someColumnData" refers to whatever property you have set for the column to display. So when you defined your AdvancedDataGrid's columns, you set the 4th column to use the "someColumnData" property of the items in your dataProvider, and you want to change the value in the 4th column, then you'd set it as described above. Hope that clarifies things.
Flex components are data driven, so you should modify the data provider of the grid.
What if you want to edit specific individual cells, eg I want to to keep running totals of some cells in other cells, IE: as a user edits I update whole columns.
Surely their must be a way to walk the array and get Column4.row6 = something.

In Flex, how do wrap Lists into columns?

How do you make a List control wrap around to a second column (or multiple columns)? Thanks, let me know if there is a solution for this with the List control or some other Flex control.
For example, if you have one list with 42 items in it, but I want to cap the height of a list to 20 items; then instead of having one list with 42 items all the way down, I would have that list of items look like the equivalent of 3 adjacent lists: the first with 20 items, the second with 20 items, and the third with 2 items (which represent the original list of 42 items).
This question seems similar but it is in ColdFusion:
Wrapping lists into columns
Using a TileList and changing the direction variable is the best solution I have come up with.
You could use a Repeater and a simple Label based itemRenderer for the list items and avoid using a list completely. If you wrap it all up inside a custom control you can provide the same API as List so your consumers will never tell the difference.
I think you're looking for a second row, as others have noted. Either setting the wordWrap to true or using a different item renderer are the best way to get it done, but using a custom item renderer will give you more control over how the object is displayed.
I suggest creating a custom Component that wraps a variable number of Lists. This custom component can have a property named "maxListHeight". It can also have a "dataProvider" property. This custom component will produce a set of horizontally aligned lists. The number of lists produced by the custom component will be: floor(dataProvider.length/maxListHeight)+1. Where all but the last list produced will have a listHeight of maxListHeight; the last list produced will have a listHeight of: dataProvider.length % maxListHeight.
This should work but managing the addition and removal of items to the masterList should require some extra work (if it is not appended/removed from the back). This would also require instantiating multiple lists instead of just one.
The default itemRenderer for a List control is TextInput that supports only single line text. Use TextArea instead.
<mx:List itemRenderer="mx.controls.TextArea"/>
Try setting the following two properties on List:
wordWrap=true
variableRowHeight=true

Resources