2013-05-15 68 views
1

我開始瘋了,我是WPF新手,看起來很難。我來自MVC,而我期望做的就是在Razor中抓拍。我想結合以下:WPF列表在列表中綁定

public ObservableCollection<FundFamilySum> FundFamilyCredits { get; set; } 

該屬性作爲一個屬性:

public ObservableCollection<BrokerCredit> BrokerCreditList { get; set; } 

我還要把它綁定到一個「孩子」的數據模板。如何去約束可枚舉類的枚舉屬性?我正在玩ItemsControl,但不斷收到已經設置好的TreeView上的錯誤,或者一切都渲染到我的網格的一個單元格中,在彼此的ontop上。我結束了移動到ItemsControl後遇到下面的代碼的問題,但this只是困惑我更::(

我真的很感謝任何指導在這個問題上,因爲我不能得到故障。在FundFamilyCredit.FundFamilyName綁定,但我沒有得到公約BrokerCreditList與一個DataTemplate綁定。
謝謝!

XAML

<ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <Grid HorizontalAlignment="Stretch"> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="20"></RowDefinition> 
          </Grid.RowDefinitions> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="2*"></ColumnDefinition> 
           <ColumnDefinition Width="8*"></ColumnDefinition> 
          </Grid.ColumnDefinitions>--> 
          <TextBlock Text="{Binding Path=FundFamilyName}" Grid.Row="0" Grid.Column="0" Background="White" FontSize="14" Foreground="Black"></TextBlock> 
          <ItemsControl ItemsSource="{Binding Path=BrokerCreditList}"> 
           <ItemsControl.ItemTemplate> 
            <DataTemplate> 
             <Grid> 
              <Grid.RowDefinitions> 
               <RowDefinition Height="20"></RowDefinition> 
              </Grid.RowDefinitions> 
              <Grid.ColumnDefinitions> 
               <ColumnDefinition Width="1*"></ColumnDefinition> 
               <ColumnDefinition Width="9*"></ColumnDefinition> 
              </Grid.ColumnDefinitions> 
              <TextBlock Grid.Row="0" Grid.Column="0" Background="White" Foreground="Black" FontSize="14" Text="{Binding Path=BrokerName}"></TextBlock> 
              <Rectangle Width="20" Height="20" Grid.Row="0" Grid.Column="1"></Rectangle> 
             </Grid> 
            </DataTemplate> 
           </ItemsControl.ItemTemplate> 
          </ItemsControl> 
         </Grid> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 

回答

3

我覺得你有幾乎一切權利。我看到它,唯一錯誤的是你缺少一個行定義,你沒有設置內部ItemsControl到第二行

<ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <Grid HorizontalAlignment="Stretch"> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="20"></RowDefinition> 
          <RowDefinition Height="Auto"></RowDefinition> <!-- NEW ROW HERE--> 
         </Grid.RowDefinitions> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="2*"></ColumnDefinition> 
          <ColumnDefinition Width="8*"></ColumnDefinition> 
         </Grid.ColumnDefinitions>--> 
         <TextBlock Text="{Binding Path=FundFamilyName}" Grid.Row="0" Grid.Column="0" Background="White" FontSize="14" Foreground="Black"></TextBlock> 
         <!--ITEMS CONTROL INTO SECOND ROW--> 
         <ItemsControl Grid.Row="1" ItemsSource="{Binding Path=BrokerCreditList}"> 
          <ItemsControl.ItemTemplate> 
           <DataTemplate> 
            <Grid> 
             <Grid.RowDefinitions> 
              <RowDefinition Height="20"></RowDefinition> 
             </Grid.RowDefinitions> 
             <Grid.ColumnDefinitions> 
              <ColumnDefinition Width="1*"></ColumnDefinition> 
              <ColumnDefinition Width="9*"></ColumnDefinition> 
             </Grid.ColumnDefinitions> 
             <TextBlock Grid.Row="0" Grid.Column="0" Background="White" Foreground="Black" FontSize="14" Text="{Binding Path=BrokerName}"></TextBlock> 
             <Rectangle Width="20" Height="20" Grid.Row="0" Grid.Column="1"></Rectangle> 
            </Grid> 
           </DataTemplate> 
          </ItemsControl.ItemTemplate> 
         </ItemsControl> 
        </Grid> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
+0

認爲itemscontrol是主要部分,但是。 +1 –

+0

謝謝@ jure,我現在就試試看!我想這可能是休息時間了。 – user576838

+0

@ jure,那就是訣竅。但是,現在我沒有格式化地獄 - 當我看着Snoop時,有所有這些堆棧面板和itempresenters。有沒有辦法擺脫那些東西? – user576838