मैं बिना किसी सफलता के क्लास इंस्टेंस की स्ट्रिंग प्रॉपर्टी से जुड़ने के लिए लेबल की सामग्री प्राप्त करने का प्रयास कर रहा हूं।डब्ल्यूपीएफ: एक वर्ग संपत्ति को लेबल को बाध्य करना
XAML:
<Window x:Class="WPFBindingTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Label Height="28" Margin="12,55,106,0" Name="label1" Background="Bisque"
Content="{Binding Source=MyFoo, Path=W1}" VerticalAlignment="Top" />
<Label Height="28" Margin="12,12,106,0" Name="label2" Background="Bisque"
Content="{Binding Source=MyFoo, Path=W2}" VerticalAlignment="Top" />
<Button Height="23" HorizontalAlignment="Right" Margin="0,0,32,48"
Name="button1" VerticalAlignment="Bottom" Width="89"
Click="button1_Click">
Set Properties
</Button>
</Grid>
</Window>
सी #:
namespace WPFBindingTest
{
public partial class Window1 : Window
{
public Foo MyFoo;
public Window1()
{
InitializeComponent();
MyFoo = new Foo();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
MyFoo.W1 = "Hello";
MyFoo.W2 = "Dave";
}
}
public class Foo
{
public string W1 { get; set; }
public string W2 { get; set; }
}
}
यानी जब मैं बटन पर क्लिक करें, मैं MyFoo को "नमस्ते" और "डेव" के गुण सेट है, और उस में परिलक्षित चाहते यूआई पर लेबल। मैंने सामग्री को बाध्यकारी के रूप में सेट किया है लेकिन कुछ सही नहीं है। मुझसे यहां क्या गलत हो रहा है?
धन्यवाद, यह मेरे सही दिशा में इशारा किया। मेड फू IotifyPropertyChanged लागू करें, फिर विंडो 1 का DataContext को बाइंडिंगलिस्ट पर सेट करें, जिसमें MyFoo शामिल है। लेबल सामग्री अब है: {बाइंडिंग पथ = डब्ल्यू 1, अपडेटसोर्स ट्रिगर = प्रॉपर्टी चेंज} और यह एक इलाज करता है! –
Gareth
@Vlad 'निर्भरता प्रॉपर्टी' का उपयोग करने और 'INotifyPropertyChanged' को लागू करने के बीच क्या अंतर होगा या यह स्वयं का प्रश्न होना चाहिए? – ywm
@ymw: यह वास्तव में एक बड़ा सवाल है, वास्तव में काफी बड़ा है। संक्षेप में: दोनों ही बंधन के लिए काम करेंगे, लेकिन 'INotifyPropertyChanged', और अधिक हल्के है' DependencyProperty' तथापि स्मृति नहीं ले करता है, तो इस्तेमाल नहीं किया और एनिमेशन, स्टाइल, टेम्पलेट्स के लिए इस्तेमाल किया जा सकता, माता पिता के कंटेनर से निहित करने के लिए प्राप्त की जा (तत्व) और बहुत कुछ। उदाहरण के लिए देखें [यह उत्तर] (http://stackoverflow.com/a/3674530/276994)। – Vlad