我正在开发一个 wpf mvvm 项目。在用户控件中,我有一个来自 Devexpress 的 datagridControl,它绑定到 Observable 集合中的数据。
<xcdg:DataGridControl x:Name="DataGridName" HorizontalAlignment="left" VerticalAlignment="Stretch"
AutoCreateColumns="False"
ItemsSource="{Binding ViewModel.Items}"
ItemScrollingBehavior="Immediate" SynchronizeCurrent="True" TabIndex="69" >
<xcdg:DataGridControl.Columns >
<xcdg:Column FieldName="Name" AllowSort="False" Title="Name" ShowInColumnChooser="False" />
</xcdg:DataGridControl.Columns>
</xcdg:DataGridControl>
Observable 集合中的类包含一个 Name(字符串)和 IsVerified(布尔值)。
private ObservableCollection<myData> _items = new ObservableCollection<myData>();
public ObservableCollection<myData> Items
{
get { return _items; }
set { _items = value; }
}
public class myData
{
public string Name { get; set; }
public bool IsVerfied { get; set; }
}
我还有一个文本块,当 IsVerfied 的值为 false 时,我使用它在 dataGrid 上方显示错误消息。
<TextBlock Name="textBlockErrrMessage" Foreground="IndianRed">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource MultiValueConverter}">
<Binding Path="DataContext.IsVerified" RelativeSource="{RelativeSource AncestorType=xcdg:DataRow}" ElementName="DataGridName" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
为此,我计划使用一个 multivalueconverter(我也在做同样的事情,但使用不同的控件,这就是我选择 MultiValueConverter 的原因),我想从 Collection 发送 IsVerfied 值并返回消息。我的问题是如何设置 MultiBinding 中的绑定以从 Observablecollection 中读取 IsVerfied 值。我认为这条特定的线是定位 Collection 值的问题
<Binding
Path="DataContext.IsVerified"
RelativeSource="{RelativeSource AncestorType=xcdg:DataRow}"
ElementName="DataGridName" />