绑定到模型的列表元素的属性

时间:2014-10-09 10:43:31

标签: c# xaml windows-phone-7 windows-phone-8

我的模型Model1的属性为List<Model2> model2;

Model1.cs

//Other Properties
public List<Model2> model2List {get; set;}

Model2我有这个属性Model3 model3;

Model2.cs

// Other Properties
public Model3 model3 {get; set;}

Model3.cs

// Other Properties
public string Name {get; set;}

现在,我在View1

中定义了两个用户控件View2View2 View1

View1.xaml UserControl

<Grid x:Name="LayoutRoot">
    <!-- Some properties here bind to those of model1 and model2 -->
    <views:View2 Name="view2"></views:View2>
</Grid>

View2.xaml UserControl

<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
      <phone:LongListSelector
          ItemsSource="{Binding Path=model3, Mode=OneWay}">
          <phone:LongListSelector.ItemTemplate>
              <DataTemplate>
                  <StackPanel>
                      <Border
                          BorderBrush="{StaticResource PhoneBackgroundBrush}"
                          BorderThickness="3"
                          Margin="0,12">
                          <Grid>
                          <TextBlock Text={Binding Path=Name, Mode=OneWay}>
                          </TextBlock>
                      </Border>
                      <views:View3 Name="view3">
                      </views:View3>
                  </StackPanel>
              </DataTemplate>
          </phone:LongListSelector.ItemTemplate>
      </phone:LongListSelector>    
</Grid>

我正在尝试将View2.xaml中的T​​extBlock绑定到Model3中的Property name。从我的CS我已将DataContext设置为

view2.DataContext = model1Object.model2List;

似乎没有效果。另外,我需要绑定view3中定义的view2中的控件,其属性为model3。我知道这看起来太混乱,但我被困住了。救命啊!

1 个答案:

答案 0 :(得分:0)

那些不属性。这些是字段。您无法绑定到字段。

使用自动属性定义将字段更改为属性。

public Model3 Model3 {get;set;} // PascalCase for property names, thx

这可能不是唯一的问题,但尝试绑定字段肯定是不正确的。