System.Windows.Forms.Button में DialogResult एक संपत्ति है, यह संपत्ति System.Windows.Controls.Button (WPF) में कहां है?बटन कहां है। डब्ल्यूपीएफ में डियालॉग रीसेट?
उत्तर
कोई अंतर्निहित है Button.DialogResult, लेकिन आप बना सकते हैं अपने खुद के (यदि आप चाहें) एक सरल जुड़ी संपत्ति का उपयोग कर:
public class ButtonHelper
{
// Boilerplate code to register attached property "bool? DialogResult"
public static bool? GetDialogResult(DependencyObject obj) { return (bool?)obj.GetValue(DialogResultProperty); }
public static void SetDialogResult(DependencyObject obj, bool? value) { obj.SetValue(DialogResultProperty, value); }
public static readonly DependencyProperty DialogResultProperty = DependencyProperty.RegisterAttached("DialogResult", typeof(bool?), typeof(ButtonHelper), new UIPropertyMetadata
{
PropertyChangedCallback = (obj, e) =>
{
// Implementation of DialogResult functionality
Button button = obj as Button;
if(button==null)
throw new InvalidOperationException(
"Can only use ButtonHelper.DialogResult on a Button control");
button.Click += (sender, e2) =>
{
Window.GetWindow(button).DialogResult = GetDialogResult(button);
};
}
});
}
यह आपको लिखने के लिए अनुमति देगा:
<Button Content="Click Me" my:ButtonHelper.DialogResult="True" />
और मिल WinForms करने के लिए व्यवहार बराबर
डब्ल्यूपीएफ में Button.DialogResult
नहीं है। बस सुनिश्चित करें कि आप ShowDialog
बजाय Show
का उपयोग कर प्रपत्र दिखाया है बनाने
private void buttonOK_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = true;
}
@Shimmy: इसे वास्तव में उत्तर स्वीकार किया जाना चाहिए .. – Mangesh
: तुम बस सही या गलत का Window
की DialogResult
सेट करना होगा। यदि आप बाद करते हैं तो आपको निम्न अपवाद उठाया मिलेगा:
InvalidOperationException के बाद ही खिड़की बनाया है और संवाद के रूप में दिखाया गया है बिना क्रिया
DialogResult सेट किया जा सकता था।
मैंने यहां नई चीजें सीखी हैं, यह अटैचिंग, इवेंटहो इस मामले में इसका उपयोग नहीं करेगा, निश्चित रूप से उपयोगी होगा! बहुत बहुत धन्यवाद – Shimmy
मुझे GetWindow func के बारे में कभी नहीं पता था, यह बस अद्भुत है! – Shimmy
एक शानदार समाधान, इसकी सादगी में अधिक बनाया गया। –