我的模型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
View2
和View2
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中的TextBlock绑定到Model3
中的Property name。从我的CS我已将DataContext设置为
view2.DataContext = model1Object.model2List;
似乎没有效果。另外,我需要绑定view3
中定义的view2
中的控件,其属性为model3
。我知道这看起来太混乱,但我被困住了。救命啊!
答案 0 :(得分:0)
那些不属性。这些是字段。您无法绑定到字段。
使用自动属性定义将字段更改为属性。
public Model3 Model3 {get;set;} // PascalCase for property names, thx
这可能不是唯一的问题,但尝试绑定字段肯定是不正确的。