【发布时间】:2016-07-10 16:36:24
【问题描述】:
我是 WPF 的新手。我卡在 XAML 的某个地方。此 XAML 代码正在运行:
<DataGridTextColumn Binding="{Binding Model.Name, UpdateSourceTrigger=PropertyChanged}">
<DataGridTextColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<DataTrigger Value="False"
Binding="{Binding DataContext.Model.Error[All],
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type DataGridRow}},
Converter={StaticResource IsNull}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Border>
<Grid>
<ContentPresenter x:Name="_cp" />
<Image Source="{DynamicResource Img.Warning}"
ToolTip="{Binding DataContext.Model.Error[Name],
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type DataGridRow}}" />
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
我想从第一行的绑定信息中获取变量字符串,如“All”、“Name”,以便在图像工具提示绑定中使用。如您所见,第一行的绑定信息在这里是“Model.Name”。我可以使用 Converter 仅获取“名称”字符串,但无法获取该绑定信息。
当我搜索时,我发现了一个使用 MultiBinding 的建议,我写了这段代码:
<DataGridTextColumn Binding="{Binding Model.Name, UpdateSourceTrigger=PropertyChanged}">
<DataGridTextColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<DataTrigger Value="False">
<DataTrigger.Binding>
<MultiBinding>
<MultiBinding.Converter>
<conv:DictionaryItemConverter />
</MultiBinding.Converter>
<Binding Path="DataContext.Model.Error"
RelativeSource="{RelativeSource FindAncestor,
AncestorType={x:Type DataGridRow}}" />
<Binding Path="?????" RelativeSource="?????" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Border>
<Grid>
<ContentPresenter x:Name="_cp" />
<Image Source="{DynamicResource Img.Warning}">
<Image.ToolTip>
<Binding>
?????
</Binding>
</Image.ToolTip>
</Image
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
但正如你所见,我一直坚持获取字符串信息。顺便说一句,DataContext.Model.Error 是一个像 Dictionary 类一样工作的类,DictionaryItemConverter 正在从这个类中获取价值
结果,我的问题是这样的。
如何以字符串形式获取 DataTextColumn 的绑定信息?
提前感谢您的所有回答。
P.S.:英语不是我的母语。如果我弄错了,对不起。
P.S.:我创建了一个示例来展示我想要的。你可以在这里下载:https://mega.nz/#!oIJXgLxb!eBNqOIdby0UgkKgfqgCOVqYE1O-KwQH7cfEQxk6aCd0
【问题讨论】:
标签: c# wpf xaml binding datagridtextcolumn