C# 将FrameworkElement.DataContext设置为匿名对象

C# 将FrameworkElement.DataContext设置为匿名对象,c#,silverlight,windows-phone-7,data-binding,C#,Silverlight,Windows Phone 7,Data Binding,我有一个网格,包含一个模板: <Grid x:Name="Bar" Width="400"> <Grid.Resources> <DataTemplate x:Name="ScoreText"> <Grid Grid.Column="{Binding Col}"> <Rectangle Fill="Red"/> <Tex

我有一个网格,包含一个模板:

<Grid x:Name="Bar" Width="400">
    <Grid.Resources>
        <DataTemplate x:Name="ScoreText">
            <Grid Grid.Column="{Binding Col}">
                <Rectangle Fill="Red"/>
                <TextBlock Text="{Binding Value}" />
            </Grid>
        </DataTemplate>
    </Grid.Resources>
</Grid
这可以在VisualStudio的XAML设计器中工作,但无法在手机上正确绑定


我需要做些什么才能使其工作?

匿名类型不工作,因为只有属性可以绑定到。添加:

public struct Data {
    public int Col {get; set;}
    public string Value {get; set;}
}
改变

item.DataContext = new { Col = 0, Value = 100 };


使其工作

匿名类型不工作,因为只有属性可以绑定到。添加:

public struct Data {
    public int Col {get; set;}
    public string Value {get; set;}
}
改变

item.DataContext = new { Col = 0, Value = 100 };


使其工作

您是否尝试过不使用匿名对象?通常,我会用属性定义一个类型,然后将dataContex设置为Grid@lukas:定义一个简单类型没有帮助:
public struct Data{public int Col;public string Value;}
,尽管我现在意识到类型转换可能很重要。现在它甚至在设计器中都不起作用。您所说的
将dataContex设置为
Grid`是什么意思?哪个网格?你试过不使用匿名对象吗?通常,我会用属性定义一个类型,然后将dataContex设置为Grid@lukas:定义一个简单类型没有帮助:
public struct Data{public int Col;public string Value;}
,尽管我现在意识到类型转换可能很重要。现在它甚至在设计器中都不起作用。您所说的
将dataContex设置为
Grid`是什么意思?哪个网格?最好改成类。可变结构是邪恶的;)最好改成上课。可变结构是邪恶的;)