我需要將控件名稱傳遞給安全對象中的方法,該方法返回IsEnabled屬性的布爾值和另一種返回其可見性(摺疊,隱藏或可見)的方法。這兩者都必須經過檢查才能獲得許可。綁定一個按鈕IsEnabled /可見性屬性使用它的x:Name作爲代碼隱藏方法中的參數
我已經嘗試使用ObjectDataProvider,但所有示例僅顯示來自參數文本框的用戶輸入。我特別需要將控件名稱傳遞給基於按鈕的x:Name屬性的方法。
什麼是處理這個問題最簡單和最有效的方法。提前致謝。
UPDATE: 我試圖用一個轉換器,這是我想出了轉換方法:
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>
我試過使用轉換器,我遇到的問題是轉換器需要我傳遞安全對象來訪問權限。 我創建了一個多值轉換器,它使用控件的名稱和表的權限。當我嘗試使用轉換器時收到此錯誤:「無法投射'System.Data'類型的對象。DataTable'鍵入'System.String'。「 – jes9582 2010-12-01 15:28:38