2

テンプレートを含むこのグリッドがあります。

<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

テンプレートのインスタンスを、含まれているグリッドに挿入したいと考えていますBar。これが私がやっていることです:

FrameworkElement item = (FrameworkElement) ScoreText.LoadContent();
item.DataContext = new { Col = 0, Value = 100 };
Bar.Children.Add(item);

これは Visual Studio の XAML デザイナーでは機能しますが、電話では正しくバインドできません。

これを機能させるにはどうすればよいですか?

4

1 に答える 1

0

Anonymous types don't work, since only properties can be bound to. Adding:

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

And changing

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

to

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

makes it work

于 2012-06-16T13:43:35.923 に答える