Fre*_*lad 7 c# wpf xaml datagrid triggers
我有一个场景,我需要指定函数
void SomeFunction(int value)
Run Code Online (Sandbox Code Playgroud)
为此,我用了两个DataGrid.
DataGrid是函数DataGrid包含所选函数的参数我只希望在DataGrid函数中选择有效函数时启用参数DataGrid.如果NewItemPlaceHolder (CanUserAddRows="True"DataGrid选择a 时的最后一行)或选择为空,我希望它被禁用.我尝试使用DataTrigger,但我无法使用它
<Style TargetType="DataGrid">
<Setter Property="IsEnabled" Value="False"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=functionDataGrid,
Path=SelectedItem}"
Value="{x:Type systemData:DataRowView}">
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)
是否可以检查Binding产生的值是否具体Type?否则,有没有人有任何其他解决方案?截至目前,我正在处理这个SelectedCellsChanged事件,但我不想使用代码
谢谢
如果有其他人遇到同样的问题,这就是我要解决的问题.我创建了一个TypeOfConverter返回TypeBinding生成的值.
<DataTrigger Binding="{Binding ElementName=functionsDataGrid,
Path=SelectedItem,
Converter={StaticResource TypeOfConverter}}"
Value="{x:Type data:DataRowView}">
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)
TypeOfConverter
public class TypeOfConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (value == null) ? null : value.GetType();
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6167 次 |
| 最近记录: |