我在DataGrid中有一个切换按钮:
<DataGridTemplateColumn Header="" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ToggleButton Checked="ToggleStrawSpecificTrue_Click"
Unchecked="ToggleStrawSpecificFalse_Click" Margin = "0,0,10,0"
Width="150" HorizontalAlignment = "Center">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=DataContext.IsSpecificDict[id]}" Value="false">
<Setter Property="Content" Value="{x:Static resx:IVFOocytes.NotPartOfGroup}"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=DataContext.IsSpecificDict[id]}" Value="true">
<Setter Property="Content" Value="{x:Static resx:IVFOocytes.PartOfGroup}"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
</DataTemplate>
IsSpecificDict
是一个int
密钥和bool
值的字典,它是虚拟机的一部分:
private Dictionary<int,bool> _isSpecificDict;
public Dictionary<int,bool> IsSpecificDict
{
get { return _isSpecificDict; }
set { _isSpecificDict = value; OnNotifyPropertyChanged("IsSpecificDict"); }
}
DataGrid的ItemSource是一个DataView。如果我将DataTrigger绑定到DataView中的一列它可以工作,但是我需要它去字典,因为它是计算的。 有没有办法做到这一点?绑定的东西令人困惑。 感谢