0
,當我嘗試運行我的應用程序,我得到這個錯誤:「轉換器」不實現接口成員System.Windows.Data.IValueConverter.Convert
「InsightSplash.theMenuConverter」不實現接口成員 「 System.Windows.Data.IValueConverter.Convert(object,System.Type,object,System.Globalization.CultureInfo)'
任何想法這是什麼問題?據我所知,我的進口是正確的:
我的XAML接口:
<Window x:Class="InsightSplash.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:InsightSplash"
Title="Window2" Height="300" Width="300" Loaded="Window_Loaded">
<Window.Resources>
<local:theConverter x:Key="theConverter"/>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="IsEnabled" Value="{Binding RelativeSource={RelativeSource Self},
Converter={StaticResource theConverter}}"></Setter>
</Style>
</Window.Resources>
<Grid HorizontalAlignment="Left" VerticalAlignment="Top" >
<Menu Grid.Row="0" Width="100" Height="30" IsMainMenu="True">
<MenuItem x:Name="Menu0" Header="الموارد البشرية" IsEnabled="True" >
<MenuItem x:Name="Menu1" Header="الادارات الرئيسية"></MenuItem>
<MenuItem x:Name="Menu2" Header="الموظفين"></MenuItem>
</MenuItem>
</Menu>
</Grid>
而且我Converter類這樣的:
public class theMenuConverter : IValueConverter
{
DataClasses1DataContext dbusers = new DataClasses1DataContext();
public object convertMe(object value, Type targetType, object parameter, CultureInfo culture)
{
MenuItem mi = (MenuItem)value;
string header = mi.Header.ToString();
int userID = AFunctionToGetAUser();
int? permissionID = (from permsion in dbusers.PermissionsTbls
where permsion.PermissionDescription == header
select permsion.PermissionID).SingleOrDefault();
bool? pageActivity = (from active in dbusers.ActivePermissionsTbls
where active.PermissionID == permissionID && active.UserID == userID
select active.PageActive).SingleOrDefault();
if (pageActivity == true && header != null)
{
return true;
}
else
{
return false;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
private int AFunctionToGetAUser()
{
return 1;
}
}
我的數據庫,我已經是
ActivePermissionsTbl ==================== ActivePermID bigint PermissionID int UserID int PageActive bit PermissionsTbl ============== PermissionID int PermissionDescription nvarchar(30)
感謝dbaseman,但即使我改變它,我仍然得到了同樣的錯誤:( –
@HudaAhmed必須有一些錯誤的方法的簽名 - 如果你有Visual Studio中,您可以通過檢查這右鍵點擊'IValueConverter',它應該在那裏插入一個存根方法,你會看到不同之處 – McGarnagle
@HudaAhmed請確保「相同的錯誤」真的是相同的錯誤,而不是另一個錯誤*同樣,但是抱怨不同的類型或不同的方法,請確保您的問題中的代碼與您的項目中的代碼相匹配,因爲此答案*應該*適用於您 – hvd