我已经尝试了几个小时来找到问题的解决方案。我希望有人可以帮助我。
首先我的情景:
我的解决方案实际上有3个项目。
PDIServices
是当前登录的用户。为此,当用户通过CardUser
登录时,我在PDIServices
项目中创建了一个名为LoginDialog
的类。类型为CardUser
的静态对象将设置为静态PDIObjects
类中的新实例。目标是从整个解决方案访问该静态CardUser
对象。 我想到的程序的一些想法:
MainWindow
开头,用户通过LoginDialog
登录,MainWindow
从LoginDialog
的事件中调用。CreateAndSetCardUser()
从CardUser
类调用静态方法CardUser
。将创建PDIObjects.CardUser
的新实例并将其设置为public class CardUser : INotifyPropertyChanged
{
public static void CreateAndSetCardUser(string idcard, string name, string prename, string department)
{
PDIObjects.CardUser = new CardUser(idcard, name, prename, department);
}
public static void UnsetCardUser()
{
PDIObjects.CardUser = null;
}
}
public static class PDIObjects
{
private static CardUser cardUser;
public static CardUser CardUser
{
get { return PDIObjects.cardUser; }
set
{
PDIObjects.cardUser = value;
}
}
}
属性。CardUser类:
CardUser
如果没有用户登录null
对象,则会将其设置为MainWindow
。当用户登录时,我想显示CardUser
组件的名称和其他一些信息。在这一点上,我被卡住了。
我尝试创建对<telerik:Tile
Name="tiCardLogin"
Grid.ColumnSpan="2"
TileType="Single"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Height="100"
Width="100"
Background="#0078ac"
ToolTip="Login"
local:FrameworkElementExt.AttachIsPressed="True"
MouseLeftButtonUp="tiCardLogin_MouseLeftButtonUp"
Style="{DynamicResource LoginTileStyle}"
DataContext="{Binding Source={x:Static PDIServices:PDIObjects.CardUser}}"
>
<telerik:Label
Content="{Binding Name}"
Foreground="White"
FontSize="20"
VerticalAlignment="Center"
HorizontalAlignment="Center"
/>
</telerik:Tile>
对象属性的绑定,但没有成功。
{{1}}
实现目标的任何提示?什么是最佳做法?为什么Binding不工作?