Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF-全局属性和用户控件_C#_Wpf_Properties_Controls - Fatal编程技术网

C# WPF-全局属性和用户控件

C# WPF-全局属性和用户控件,c#,wpf,properties,controls,C#,Wpf,Properties,Controls,问候 我有一个主窗口,可以容纳多个用户控件。我将通过示例图片为您提供更好的视图: UC3和UC4是相同的用户控件 UC3被命名为ucRacesP1(默认情况下隐藏) UC4被命名为ucRacesP2(默认情况下隐藏) 根据图像上按下的按钮,其中一个控件将可见 现在我想做的是,当一个人在UC3中选择一个值时,需要设置player1的属性。当在UC4中选择一个值时,我需要设置player2的属性。我本来想用属性来实现这一点,但在搜索属性和WPF时,我偶然发现了依赖属性。这让我有点困惑,我需

问候

我有一个主窗口,可以容纳多个用户控件。我将通过示例图片为您提供更好的视图:


  • UC3和UC4是相同的用户控件
  • UC3被命名为ucRacesP1(默认情况下隐藏)
  • UC4被命名为ucRacesP2(默认情况下隐藏)
  • 根据图像上按下的按钮,其中一个控件将可见
现在我想做的是,当一个人在UC3中选择一个值时,需要设置player1的属性。当在UC4中选择一个值时,我需要设置player2的属性。我本来想用属性来实现这一点,但在搜索属性和WPF时,我偶然发现了依赖属性。这让我有点困惑,我需要使用普通属性还是这些依赖属性

  • 我如何知道是否必须设置player1值或player2值(这取决于哪个UserControl发送数据)

  • 如何为整个应用程序保存这些值

  • 将用户控件在开始时隐藏(由于定位)是最好的方法还是有更好的选择


谢谢你花时间阅读我的问题

我想,你的出发点是

根据图像上按下的按钮,其中一个控件将可见

1-图像上有某些按钮,用户可以单击图像

2-您可以使用ICommand界面来执行UI中的特定命令,即,如果用户按Palyer1,您可以执行Player1命令;如果用户按Player2,您可以执行Player2命令

3-player1和player2中可能存在代码重复,但不要担心,您可以随时重构代码,首先是将命令分派给相应的命令处理程序

    <!--Player 1-->
    <local:ucRaces x:Name="ucRacesP1" Width="78" Height="33" Visibility="Hidden" />
    <Image Name="imageRacePlayer1" Height="27" Width="27" />

    <!--Player 2-->
    <local:ucRaces x:Name="ucRacesP2" Width="78" Height="33" Visibility="Hidden" />
    <Image Name="imageRacePlayer2" Height="27" Width="27" />