当我使用“添加项目”对话框创建新窗口时,我创建的窗口(例如
下面是我的弹出窗口代码。该代码仅看到
NewWindow
)并未继承自Window
类型。它只具有与Object
类型相同的接口。例如:下面是我的弹出窗口代码。该代码仅看到
IHavePassword
成员,而不是`LoginPopup'的其余成员,如其控件。Public Class LoginPopup
Implements IHavePassword
Public ReadOnly Property Password As SecureString Implements IHavePassword.Password
Get
'Return Me.PasswordBox.????
End Get
End Property
Public Event PasswordChanged As RoutedEventHandler Implements IHavePassword.PasswordChanged
Public Sub PassWordChangedHandler(sender As Object, e As EventArgs)
PasswordChangedEvent(sender, e)
End Sub
Public Sub Close() Implements IHavePassword.Close
Throw New NotImplementedException
End Sub
End Class
哦,这里还需要XAML:
<Window x:Class="ApptEase.Client.Prism.Views.LoginPopup"
....
<StackPanel Orientation="Vertical" Margin="0">
<DockPanel LastChildFill="True">
<TextBlock Text="{Binding Path=UsernameLabel}" DockPanel.Dock="Left" TextAlignment="Right" Margin="5,9,5,5" MinWidth="70" />
<TextBox Text="{Binding Path=Username, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=True}" Width="Auto" Margin="5" />
</DockPanel>
<DockPanel LastChildFill="True">
<TextBlock Text="{Binding Path=PasswordLabel}" DockPanel.Dock="Left" TextAlignment="Right" Margin="5" MinWidth="70" />
<PasswordBox x:Name="PasswordBox" PasswordChanged="PassWordChangedHandler" Width="Auto" Margin="5" />
</DockPanel>
<DockPanel LastChildFill="True" Height="59">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<Button Content="Log in" Command="{Binding Path=LoginCommand}" CommandParameter="{Binding ElementName=This}" Margin="5" Padding="15,10,15,10" />
<Button Content="Cancel" Command="{Binding Path=CancelCommand}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" Margin="5" Padding="15,10,15,10"/>
</StackPanel>
</DockPanel>
</StackPanel>
Me
上的IntelliSense列出了IHavePassword
的成员,例如:
我希望在这里看到控件和基本的Window
成员,而不是接口的成员。我该如何解决这个问题?