2014-10-09 67 views
0

我有一個模型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;} 

現在我已經兩個用戶控件View1View2View2View1

定義View1.xaml用戶控件

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

View2.xaml用戶控件

<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。從我的CS我設置的DataContext作爲

view2.DataContext = model1Object.model2List;

似乎並不奏效。此外,我需要將view2中定義的view3中的控件與model3的屬性綁定。我知道這看起來太混亂了,但我被卡住了。幫幫我!

+0

這個問題還不清楚。 – 2014-10-09 10:55:20

+0

@EldarDordzhiev檢查現在是否有意義。 – PratPor 2014-10-09 11:09:14

+0

把你的完整xaml – MatDev8 2014-10-09 11:54:19

回答

0

那些不屬性。這些是字段。你不能綁定到字段。

通過使用自動屬性定義將您的字段更改爲屬性。

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

這可能不是唯一的問題,但它試圖與字段綁定絕對不正確。

+0

看起來這些字段是私人的。考慮使用公衆的知名度:) – 2014-10-09 15:40:37

+0

@EldarDordzhiev oops! – Will 2014-10-09 16:32:23

+0

這些實際上是屬性。我編輯了這個問題。幫幫我。 – PratPor 2014-10-10 06:52:03