Lets say I have a custom data type that looks something like this:
public class MyDataType
{
public string SimpleProp1;
public string SimpleProp2;
public List<SomeType> ComplexProp;
}
now I hava a data bound control (i.e. ItemsControl or DataGrid), that is created dynamically.
How would the binding defined in xaml code look like to acces a subproperty of the complex property? I thought it should look something like this:
<TextBox Text="{Binding simpleSubProp, path=ComplexProp[0]}" />
or
<TextBox Text="{Binding path=ComplexProp[0].simpleSubProp}" />
but both of those give me xml parse errors. How should it look correctly? Is it even possible to refer to a specific item of a collection property in souch a way? If it is not, what other options do I have?
EDIT, The scenario doesn't seem to be clear enough:
I have an
IEnumberable<MyDataType>
that is bound to an ItemsControl, inside the DataTemplate I have multiple TextBoxes that need to refer to subproperties of an object in the List of the complex property.
Best Answer
Looks like poperty path indexers are broken in Silverlight Indexers in property paths are broken. The way to get around it is as suggested in the post and to use an IValueConverter.
XAML
C# Page.xaml.cs
C# SomeType.cs