2011-09-29 69 views
1

如何包裝包裝類的集合。我在我的視圖模型是如何將此集合綁定到我的列表框

AsyncVirtualizingCollection<Item> ItemValues{get;set;} 

類型:其中,包裝是一個通用型

Wrapper<T> 

項目類的屬性。基本上,我想從這個link

項目做一個數據虛擬化是包含三個屬性(標題,重點和IsSelected(實現INotifyPropertyChanged)

我需要綁定的是一個列表框的簡單類(複選框)。我有這個templete和我結合這樣

Templete:

<Style x:Key="CheckBoxStyle" TargetType="{x:Type ListBox}"> 
      <Setter Property="VirtualizingStackPanel.IsVirtualizing" Value="True"/> 
      <Setter Property="VirtualizingStackPanel.VirtualizationMode" Value="Recycling"/> 
      <Setter Property="ScrollViewer.IsDeferredScrollingEnabled" Value="True"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type ListBox}"> 
         <Border Background="{x:Null}" BorderThickness="0"> 
          <ScrollViewer x:Name="scrollViewer" VerticalScrollBarVisibility="Visible" Background="{x:Null}"> 
           <ItemsPresenter /> 
          </ScrollViewer> 
         </Border> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="ItemContainerStyle"> 
       <Setter.Value> 
        <Style TargetType="{x:Type ListBoxItem}"> 
         <Setter Property="Height" Value="23" /> 
         <Setter Property="Template"> 
          <Setter.Value> 
           <ControlTemplate TargetType="{x:Type ListBoxItem}"> 
            <Grid Width="auto" x:Name="grid1"> 
             <CheckBox x:Name="checkBox" IsChecked="{Binding IsSelected}" Content="{Binding Caption}" 
                HorizontalAlignment="Left" HorizontalContentAlignment="Left" VerticalAlignment="Center" VerticalContentAlignment="Center" 
                Foreground="#FF3F3F3F" Background="{x:Null}" 
                FontSize="13" FontFamily="Segoe UI Semibold" 
                ClickMode="Release"> 
              <CheckBox.Style> 
               <Style TargetType="{x:Type CheckBox}"> 
                <Setter Property="Margin" Value="5,2,0,2" /> 
               </Style> 
              </CheckBox.Style> 
             </CheckBox> 
            </Grid> 
           </ControlTemplate> 
          </Setter.Value> 
         </Setter> 
        </Style> 
       </Setter.Value> 
      </Setter> 
     </Style> 

和主列表框是這樣的:

<Grid x:Name="gridMain" Height="auto" Width="auto" Background="White"> 

     <ListBox x:Name="listBox" 
       ItemsSource="{Binding Path=ItemValues}" 
       IsSynchronizedWithCurrentItem="True" 
       Style="{StaticResource CheckBoxStyle}" 
       ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
       VirtualizingStackPanel.IsVirtualizing="True" 
       Background="{x:Null}" 
       BorderBrush="Transparent"> 
     </ListBox> 
    </Grid> 

運行時只顯示Checboxes而不顯示Caption。我知道我在這裏做了一些錯誤的約束。

如果我從列表框中刪除樣式它顯示了我的琴絃「.Wrapper`1 [.Item]」

任何建議名單什麼可以在這裏失去了?

+0

我發現,使用這個工程 CONTENT = 「{綁定的RelativeSource = {的RelativeSource TemplatedParent},路徑= Content.Data.Caption}」 謝謝.. Shankar – Shankar

回答

0

我發現,使用這個工程

Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content.Data.Caption}" 

感謝

相關問題