コントロール名を、IsEnabled プロパティのブール値を返すセキュリティ オブジェクトのメソッドと、その Visibility (Collapsed、Hidden、または Visible) を返す別のメソッドに渡す必要があります。これらは両方とも、許可のためにチェックする必要があります。
ObjectDataProvider を使用してみましたが、すべての例は、パラメーターのテキスト ボックスからのユーザー入力のみを示しています。特に、ボタンの x:Name プロパティに基づいてメソッドにコントロール名を渡す必要があります。
この問題を処理する最も簡単で効率的な方法は何ですか。前もって感謝します。
更新: コンバーターを使用しようとしていますが、これは私が思いついた変換方法です:
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (values != null)
{
DataTable tblPermissions = (DataTable)values[0];
string sFunctionName = values[1].ToString();
DataRow[] rows = tblPermissions.Select("fun_name = '" + sFunctionName + "'");
if ((bool)rows[0]["fun_enable"])
return true;
else
return false;
}
return string.Empty;
}
以下は xaml です。
<Button.IsEnabled>
<MultiBinding Converter="{StaticResource IsFunctionEnabledConverter}">
<Binding ElementName="{StaticResource PermissionsTable}" />
<Binding ElementName="btnSave" Path="Name" />
</MultiBinding>
</Button.IsEnabled>