我有一个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}"
请帮帮我......先谢谢
答案 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");