2012-02-09 64 views
1

我有一个DataTemplate:绑定的行为的datacontext的DataTemplate的Silverlight中

<Style x:Key="SalesmanDestinyReportListBoxStyle" TargetType="ListBox"> 
      <Setter Property="ItemsPanel"> 
       <Setter.Value> 
        <ItemsPanelTemplate> 
         <StackPanel Orientation="Horizontal" /> 
        </ItemsPanelTemplate> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="ListBox"> 
         <ItemsPresenter /> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="ItemTemplate"> 
       <Setter.Value> 
        <DataTemplate> 
         <telerik:RadGridView x:Name="grdSalesmanDestinyReport" Width="180" SelectionMode="Single" IsReadOnly="False" IsFilteringAllowed="True" 
        VerticalAlignment="Stretch" RowIndicatorVisibility="Collapsed" HorizontalAlignment="Stretch" 
        CanUserDeleteRows="False" CanUserInsertRows="False" CanUserReorderColumns="False" ItemsSource="{Binding Scores}" AutoGenerateColumns="False"> 
          <i:Interaction.Behaviors> 
           <Binding:ColumnGroupsBehavior> 
            <Binding:ColumnGroupsBehavior.CommonHeaders> 
             <Binding:CommonHeader StartColumnIndex="0" Caption="{Binding Path=DataContext.SalesmanName,ElementName=grdSalesmanDestinyReport}" ColumnSpan="3" /> 
            </Binding:ColumnGroupsBehavior.CommonHeaders> 
           </Binding:ColumnGroupsBehavior> 
          </i:Interaction.Behaviors> 
          <telerik:RadGridView.Columns> 
           <telerik:GridViewDataColumn DataMemberBinding="{Binding Current}" IsReadOnly="True" 
          Header="{Binding Current}" Width="60"> 
            <telerik:GridViewDataColumn.CellTemplate> 
             <DataTemplate> 
              <TextBlock Text="{Binding Current}"> 

              </TextBlock> 
             </DataTemplate> 
            </telerik:GridViewDataColumn.CellTemplate> 
           </telerik:GridViewDataColumn> 
           <telerik:GridViewDataColumn DataMemberBinding="{Binding Destiny}" IsReadOnly="True" 
          Header="{Binding Current}" Width="60"> 
            <telerik:GridViewDataColumn.CellTemplate> 
             <DataTemplate> 
              <TextBlock Text="{Binding Destiny}"> 

              </TextBlock> 
             </DataTemplate> 
            </telerik:GridViewDataColumn.CellTemplate> 
           </telerik:GridViewDataColumn> 

           <telerik:GridViewDataColumn DataMemberBinding="{Binding Best}" IsReadOnly="True" 
          Header="{Binding Current}" Width="60"> 
            <telerik:GridViewDataColumn.CellTemplate> 
             <DataTemplate> 
              <TextBlock Text="{Binding Best}"> 

              </TextBlock> 
             </DataTemplate> 
            </telerik:GridViewDataColumn.CellTemplate> 
           </telerik:GridViewDataColumn> 

          </telerik:RadGridView.Columns> 
         </telerik:RadGridView> 
        </DataTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

这里是一个源类:

public class SalesmanDestinyReport 
    { 
     [DataMember] 
     public List<Score> Scores { get; set; } 

     [DataMember] 
     public string SalesmanName { get; set; } 
    } 

和我有这段代码的问题:

     <i:Interaction.Behaviors> 
          <Binding:ColumnGroupsBehavior> 
           <Binding:ColumnGroupsBehavior.CommonHeaders> 
            <Binding:CommonHeader StartColumnIndex="0" Caption="{Binding Path=DataContext.SalesmanName,ElementName=grdSalesmanDestinyReport}" ColumnSpan="3" /> 
           </Binding:ColumnGroupsBehavior.CommonHeaders> 
          </Binding:ColumnGroupsBehavior> 
         </i:Interaction.Behaviors> 

问题是我无法将SalesmanName属性传递给

<Binding:CommonHeader StartColumnIndex="0" Caption="{Binding Path=DataContext.SalesmanName,ElementName=grdSalesmanDestinyReport}" ColumnSpan="3" /> 

我觉得没有必要解释wthat年代CommonHeader,因为我相信这个问题在另一个地方规定,但以防万一:

http://blogs.telerik.com/pavelpavlov/posts/09-12-04/adding-additional-power-to-radgridview-for-silverlight-with-attached-behaviors.aspx

我需要改变什么我绑定声明显示SalesmanName?

回答

1

从头开始 - Silverlight 4不支持Style Setters中的绑定(此功能现在可在SL5中使用)。对于SL4,有一种解决方法:SetterValueBindingHelper

相关问题