我有一个公共类PopupDialog
,它具有诸如bool IsBackDismissEnabled
这样的属性。这是用来表示是否按下后退按钮将关闭对话框。
我使用Xamarin.CommunityToolkit弹出窗口显示弹出对话框。
,这是我的PopupDialog.cs
public class PopupDialog
{
public bool IsBackDismissEnabled { get; set; }
}
这里是我的对话框实现
using Xamarin.CommunityToolkit.UI.Views;
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ForgotPasswordDialog : Popup<PopupDialog>
{
public ForgotPasswordDialog()
{
InitializeComponent();
// I want to access IsBackDismissEnabled here
// something like base.IsBackDismissEnabled = true;
}
}
我想从派生的PopupDialog
类Popup<PopupDialog>
中访问Popup<PopupDialog>
的IsBackDismissEnabled
,它是如何实现的?
简而言之,我有一个类,它被指定为泛型类的参数。该泛型类派生于一个类中,我希望从该类中访问作为泛型类的参数指定的前一个类的属性。
发布于 2022-07-11 18:27:27
我从没见过有人试图做你想做的事。我甚至不确定这是否合乎逻辑。请解释一下你想做什么:,为什么,你希望PopupDialog
成为generic parameter
考虑将其作为Popup
构造函数的参数,并将其保存在属性或字段中:
public class Popup
{
public Popup(ISomeInterface myParam)
{
this.MyParam = myParam;
}
public ISomeInterface MyParam;
}
public class ForgotPasswordDialog : Popup
{
public ForgotPasswordDialog() : base(new PopupDialog())
{
}
void SomeMethod()
{
// Access MyParam
... this.MyParam.IsBackDismissEnabled ...
}
}
public interface ISomeInterface
{
bool IsBackDismissEnabled { get; set; }
}
public class PopupDialog : ISomeInterface
{
public bool IsBackDismissEnabled { get; set; }
...
}
/// Usage
var myVariable = new ForgotPasswordDialog();
... myVariable.MyParam.IsBackDismissEnabled ...
要想有用,您需要指定interface
或MyParam
所拥有的base class
。这里我给ISomeInterface
看。相反,这可能是一些PopupDialog
的基类。
https://stackoverflow.com/questions/72942155
复制相似问题