我有一个公共类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
复制相似问题