क्या सिल्वरलाइट डेटा टेम्पलेट में कोई ईवेंट बाध्य करना संभव है? यदि हां, तो ऐसा करने का सबसे अच्छा तरीका क्या है?क्या सिल्वरलाइट डेटा टेम्पलेट में एक ईवेंट को बाध्य करना संभव है?
<UserControl.Resources>
<DataTemplate x:Key="MyDataTemplate" >
<Grid>
<Button Content="{Binding ButtonText}" Margin="4" />
</Grid>
</DataTemplate>
</UserControl.Resources>
उसके बाद, आप, एक ListBox ItemTemplate में इसे लागू इस तरह::
उदाहरण के लिए, यदि आप एक DataTemplate उस में एक बटन है, इस तरह बना लिया है कहना
<Grid x:Name="LayoutRoot" Background="White">
<ListBox x:Name="lbListBox" ItemTemplate="{StaticResource MyDataTemplate}" />
</Grid>
आप वर्ग की वस्तुओं की एक सूची के लिए ListBox के ItemSource सेट करते हैं:
public class MyDataClass
{
public string ButtonText{ get; set; }
}
आप वें कैसे तो पकड़ है ई बटन सूची में डेटा टेम्पलेट से प्रत्येक बटन से क्लिक करें? आप "MyButtonClass" में एक विधि के लिए घटना के लिए क्लिक करें बाध्य करने के लिए बाध्यकारी उपयोग कर सकते हैं, इस तरह:
<UserControl.Resources>
<DataTemplate x:Key="MyDataTemplate" >
<Grid>
<Button Click="{Binding OnItemButtonClick}" Content="{Binding ButtonText}" Margin="4" />
</Grid>
</DataTemplate>
</UserControl.Resources>
चाहेंगे इस काम करता है? यदि हां, तो मुझे घटना को पकड़ने के लिए "MyDataClass" में क्या रखा जाना चाहिए?
धन्यवाद, जेफ
यही कारण है कि कमांड बेहतर हैं। .NET 4 ढांचे में आप कमांड (घटनाओं के विपरीत) को बाध्य कर सकते हैं ताकि आप अभी भी एमवीवीएम का उपयोग बिना किसी कोड-बैक और बाध्य कार्यक्षमता के कर सकें। –