【发布时间】:2016-10-24 10:00:10
【问题描述】:
当我创建一个新窗口时,使用添加项目...对话框,我创建的窗口,例如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 成员,而不是界面中的那些。我该如何解决这个问题?
【问题讨论】:
-
有识字的人可以解释一下否决票吗?对于我要问的问题,这个问题非常清楚。这是私人的还是什么?
-
仅作记录:我没有否决您的问题。
-
为了记录,我从来没有怀疑过你,@haindl。
-
是项目/解决方案特定的问题,还是 VS 安装特定的问题?也就是说,创建一个新项目并添加一个窗口会重现这种行为吗?另外,我自己无法复制它。
标签: .net wpf interface wpf-controls implements