装订& CustomViewSource在数据网格wpf中一起应用

时间:2014-11-20 11:12:16

标签: wpf

我有一个CustomViewSource用于在datagrid中对数据进行分组。 XAML代码如下:

 <local:DataCollection x:Key="dataCollection" />
     <CollectionViewSource x:Name="abc"
                           x:Key="cvs"
                           Source="{StaticResource dataCollection}" 
                           Filter="CollectionViewSource_Filter">
          <CollectionViewSource.GroupDescriptions>
               <PropertyGroupDescription PropertyName="CLAIM_ENCOUNTER" />
               <PropertyGroupDescription PropertyName="ACTIVITY" />
               <PropertyGroupDescription PropertyName="OBSERVATION" />
          </CollectionViewSource.GroupDescriptions>
      </CollectionViewSource>
 </local:DataCollection>

这里dataCollection是我在后面的代码中填充的数据。

 DataCollection _tasks = (DataCollection)this.Resources["dataCollection"];
 foreach (DataRow item in DtAllData.Rows)
 {
      _tasks.Add(new GroupData()
      {
          CLAIM_ENCOUNTER = item["CLAIM_ENCOUNTER"].ToString(),
          CLAIM_ID = item["Claim_Id"].ToString(),
          ...
      }
 }

它使用类填充。 Datagrid填充为:

<DataGrid 
    x:Name="GridAll"
    Grid.Row="1"
    Grid.RowSpan="2"
    BorderBrush="Transparent"
    Grid.Column="0"
    Grid.ColumnSpan="5"
    CanUserAddRows="False"
    CanUserDeleteRows="False"
    CanUserReorderColumns="False"
    CanUserResizeColumns="True"
    AutoGenerateColumns="False"
    DataContext="{Binding Source={StaticResource cvs}}"
    ItemsSource="{Binding Source={StaticResource cvs}}"
    HeadersVisibility="Column"
    HorizontalGridLinesBrush="LightGray"
    VerticalGridLinesBrush="LightGray"
    VerticalAlignment="Stretch"
    HorizontalScrollBarVisibility="Auto"
    VerticalScrollBarVisibility="Auto"
    Margin="3">
</DataGrid>

我的问题是,在这个数据网格中,我希望通过绑定显示一个图像。它的绑定路径我设置为:

Binding="{Binding Path=CLAIM_ID,
   UpdateSourceTrigger=PropertyChanged,
   RelativeSource={RelativeSource FindAncestor,
      AncestorType={x:Type UserControl},AncestorLevel=1},
   Mode=TwoWay}"

请帮帮我......先谢谢

1 个答案:

答案 0 :(得分:0)

我想你想要绑定到UserControl的属性。

1)确保您的UserControl本身有一个名称(通常在您的xaml类的顶部):

<UserControl x:Class="myNameSpace.MyUserControl"
             x:Name="MyUserCtrl1"
             ...

2)设置绑定

<Image Source="{Binding ElementName=MyUserCtrl1, Path=ClaimImage}" .. />

要求:

  • 创建了UserControl.DataContext

  • ClaimImage是UserCntrol中的一个Image源,例如Uri(而不是像CLAIM_ID这样的字符串)

    ClaimImage = new Uri("pack://application:,,,/Images/claimImage.png");