datagridセルのスタイル設定ツールでconverterParameterを使用する方法は? 私のコンバータの要素名またはプロパティ名を知る必要があります。converterParameterを使用したDatagridセルスタイル
XAML:
<Window.Resources>
<view:IsEnabledCellConverter x:Key="IsEnabledCellConverter"/>
<Style x:Key="CellStyle" TargetType="{x:Type DataGridCell}">
<Setter Property="IsEnabled"
Value="{Binding
Path=Item,
Converter={StaticResource ResourceKey=IsEnabledCellConverter},
ConverterParameter={?????}}"
RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}} />
</Style>
.../...
<Datagrid>
<DataGrid.Columns>
<DataGridTextColumn x:Name="Design"
CellStyle="{StaticResource CellStyle}"
Value="{Binding Path=Design}"/>
<DataGridTextColumn x:Name="FooBar"
CellStyle="{StaticResource CellStyle}"
Value="{Binding Path=Foobar}"/>
</DataGrid.Columns>
</Datagrid>
Converterクラス:
class IsEnabledCellConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string p = (string)parameter;
MyItem item = (MyItem)value;
switch (p)
{
case "Design":
return string.IsNullOrEmpty(item.Reference);
break;
case "FooBar":
return item.Something != true;
break;
default:
return true;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
編集:私はニーズを理解するためのいくつかの詳細を追加しました。 だから、私のすべての列がISENABLED小道具は、2つの理由のために、このグローバルコンバータを結合されています
- それは
- いくつかの列は、他の項目値の値に応じて有効にする必要が維持する方が簡単です。
あなたの質問には、どの要素名またはプロパティ名をお探しですか? – AnjumSKhan
私はDatagridTextColumnのx:nameやBinding Pathのプロパティ、例えば "Design"を取得したいと思っています – ebelair
そのような理由があります。もしそうなら、あなたは 'AttachedProperty'を使わなければならないかもしれません。 – AnjumSKhan