अपने उपयोगकर्ता नियंत्रण पर एक निर्भरता संपत्ति जोड़ें और उस पर बटन की कमांड प्रॉपर्टी को बाध्य करें।
तो अपने GreatUserControl में:
public ICommand SomeCommand
{
get { return (ICommand)GetValue(SomeCommandProperty); }
set { SetValue(SomeCommandProperty, value); }
}
public static readonly DependencyProperty SomeCommandProperty =
DependencyProperty.Register("SomeCommand", typeof(ICommand), typeof(GreatUserControl), new UIPropertyMetadata(null));
और अपने GreatUserControl के XAML में:
<UserControl
x:Class="Whatever.GreatUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="me"
>
<Button Command="{Binding SomeCommand,ElementName=me}">Click Me!</Button>
</UserControl>
तो अपने बटन UserControl पर ही आदेश को बांधता है। अब आप इसे अपनी मूल विंडो में सेट कर सकते हैं:
<my:GreatUserControl SomeCommand="{Binding SomeCommandHere}" />
स्रोत
2010-05-06 00:00:52
धन्यवाद, मैट। मुझे निर्भर तरीके से एहसास हुआ कि मैं निर्भरता प्रॉपर्टी पंजीकृत करके ऐसा कर सकता हूं, लेकिन मुझे उम्मीद थी कि एक आसान तरीका था (उदाहरण के लिए बटन को नियंत्रण की संपत्ति के रूप में उजागर करें) फिर इसे एक्सएएमएल में सेट करें। वैसे भी। इससे चल जाएगा। जवाब के लिए धन्यवाद। –
जब आप अपने उपयोगकर्ता नियंत्रण में DataContext जोड़ते हैं तो यह टूट जाता है। – Nicholas
रोगी: "जब मैं ऐसा करता हूं तो दर्द होता है।" डॉक्टर: "ऐसा करना बंद करो।" मुझे आरओएफएल बनाने के लिए –