绑定到另一个类中的静态对象的属性

时间:2017-10-19 11:04:28

标签: wpf data-binding

我已经尝试了几个小时来找到问题的解决方案。我希望有人可以帮助我。

首先我的情景:

我的解决方案实际上有3个项目。

  • 带有主窗口(ProductionDataInput)的项目。
  • 提供一些LoginDialogs(LoginDialogs)的项目。
  • 在整个解决方案中包含一些我需要的类的项目。例如,PDIServices是当前登录的用户。为此,当用户通过CardUser登录时,我在PDIServices项目中创建了一个名为LoginDialog的类。类型为CardUser的静态对象将设置为静态PDIObjects类中的新实例。目标是从整个解决方案访问该静态CardUser对象。

我想到的程序的一些想法:

  • 应用程序以MainWindow开头,用户通过LoginDialog登录,MainWindowLoginDialog的事件中调用。
  • 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不工作?

0 个答案:

没有答案