Binding to multiple indexers

binding, indexed-properties, windows-phone, wpf

Solution

The problem is the `{Binding}` markup extension - which has a `delimiter` which is `,`.

To work around that you can use the following notation...

<TextBox Width="100" Height="100">
    <TextBox.Text>
        <Binding Path="MyIndexer[1,1]" />
    </TextBox.Text>
</TextBox>

Or use the 'escaped' `,` with `\` - which is also in that link (but somehow they're getting over fact that their original notation doesn't work).

<TextBox Text="{Binding MyIndexer[2\,2]}" Width="100" Height="100" />  

Note that indexer, multi-dimentional array syntax is like this :)...

public string this[int x, int y]
{
    get { return _items[x][y]; }
    set { _items[x][y] = value; }
}

Problem

I am trying to bind an indexed property with two indexers. The property looks like this ``` public Item this[int x, int y] { get { return _items[x, y]; } set { _items[x, y] = value; } } ``` According to http://msdn.microsoft.com/en-us/library/ms742451.aspx, it is possible to bind against indexed properties like that ``` <object Path="propertyName[index,index2...]" .../> ``` There is even an example: ``` <Rectangle Fill="{Binding ColorGrid[20,30].SolidColorBrushResult}" .../> ``` However when I try to access that property in XAML like that: ``` <Image Source="{Binding Items[0,0].Image}" /> ``` I get an error in the designer: The unnamed argument "0].Image" must appear before named arguments. It seems to interpret 0].Image as the next argument. What am I missing?

Original source