【发布时间】:2014-12-29 14:01:21
【问题描述】:
这里是 C# 代码
namespace WpfApplication9.ViewModels.Interfaces
{
public interface ITradeViewModel
{
ObservableCollection<Trade> GetTrades();
}
}
namespace WpfApplication9.ViewModel
{
public class TradesViewModel : BaseViewModel, ITradeViewModel
{
private ObservableCollection<Trade> _trades = new ObservableCollection<Trade>();
private ICommand _saveCommand;
private ICommand _loadCommand;
public TradesViewModel()
{
_saveCommand = new SaveTradesCommand();
_loadCommand = new LoadTradesCommand();
_trades = GetTrades();
}
public ObservableCollection<Trade> Trades { get {return _trades;} }
public ObservableCollection<Trade> GetTrades()
{
if (_trades == null || _trades.Count == 0)
_loadCommand.Execute(_trades);
return _trades;
}
}
}
当我将其转换为 VB 时,如下所示,
Namespace WpfApplication9.ViewModels.Interfaces
Public Interface ITradeViewModel
Function GetTrades() As ObservableCollection(Of Trade)
End Interface
End Namespace
Namespace WpfApplication9.ViewModel
Public Class TradesViewModel
Inherits BaseViewModel
Implements ITradeViewModel
Private _trades As New ObservableCollection(Of Trade)()
Private _saveCommand As ICommand
Private _loadCommand As ICommand
Public Sub New()
_saveCommand = New SaveTradesCommand()
_loadCommand = New LoadTradesCommand()
_trades = GetTrades()
End Sub
Public ReadOnly Property Trades() As ObservableCollection(Of Trade)
Get
Return _trades
End Get
End Property
Public Function GetTrades() As ObservableCollection(Of Trade)
If _trades Is Nothing OrElse _trades.Count = 0 Then
_loadCommand.Execute(_trades)
End If
Return _trades
End Function
End Class
End Namespace
它会返回一个错误,告诉我接口 ITradeViewModel 的 GetTrades 未实现?
我做错了什么?
谢谢,
【问题讨论】:
-
你必须明确使用 vb.net - msdn.microsoft.com/en-us/library/28e2e18x.aspx
-
VB 需要你更加明确。将光标放在 Imeplements 行,点击回车,它将为所需的方法/成员等添加模板
Implements ITradeViewModel.GetTrades -
谢谢,原来这么简单。有时转换工具甚至无法正确执行。