हम पृष्ठ को स्वयं नेविगेट करने दे सकते हैं। बस अपने कस्टम उपयोगकर्ता नियंत्रण में एक घटना को परिभाषित करें और घटना को अपने माता-पिता (पृष्ठ) में सुनें।
एक उदाहरण के रूप समझें:
- एक कस्टम उपयोगकर्ता नियंत्रण बनाएँ और परीक्षण उद्देश्य के लिए उस पर एक बटन डाल दिया।
- परीक्षण बटन के क्लिक ईवेंट में, पैरेंट पेज नेविगेट करने के लिए ईवेंट को बढ़ाएं।
- अभिभावक पृष्ठ में, UserControl की घटना को सुनें और फ्रेम.Navigate पर कॉल करें।
myControl के Xaml:
<UserControl
x:Class="App6.MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App6"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400">
<Grid>
<Button x:Name="testbtn" Margin="168,134,0,134" Click="testbtn_Click">test</Button>
</Grid>
</UserControl>
myControl के codebehind:
public sealed partial class MyControl : UserControl
{
public delegate void MyEventHandler(object source, EventArgs e);
public event MyEventHandler OnNavigateParentReady;
public MyControl()
{
this.InitializeComponent();
}
private void testbtn_Click(object sender, RoutedEventArgs e)
{
OnNavigateParentReady(this, null);
}
}
नेविगेट mainpage secondpage रहे हैं:
public MainPage()
{
this.InitializeComponent();
myControl.OnNavigateParentReady += myControl_OnNavigateParentReady;
}
private void MyControl_OnNavigateParentReady(object source, EventArgs e)
{
Frame.Navigate(typeof(SecondPage));
}
स्रोत
2015-08-28 01:35:56
शानदार! इसके लिए शुक्रिया। एक जादू की तरह काम किया। – kgyts
मुझे 'ऑननेविगेट पेरेंट रीडी (यह, शून्य) पर एक नलपोइंटर मिलता है; '? – Evilunclebill
मुझे 'सार्वजनिक घटना' को 'सार्वजनिक स्थैतिक घटना' में बदलने की आवश्यकता है, ताकि मैं 'ग्रिड व्यू' के भीतर 'ग्रिड व्यू' के भीतर 'ग्रिड व्यू 'के भीतर' डेटा टेम्पलेट 'के भीतर' UserControl' में इस समाधान का उपयोग कर सकूं। एक 'पृष्ठ' के भीतर ... एक महान समाधान के लिए धन्यवाद। – dav1dsm1th