กำลังค้นหาความรู้ DataTemplate ที่ดีที่สุดใน WPF และคุณสมบัติที่ใช้ในนั้นหรือไม่

ฉันต้องการความรู้สั้นๆ เกี่ยวกับเทมเพลตข้อมูลสำหรับการปรับแต่งการควบคุม (เช่น Combo Box, List Box ฯลฯ) ใน WPF โดยใช้ C#.NET ดังนั้นหากใครมีลิงค์หรือแอปพลิเคชันตัวอย่างโปรดแชร์ให้ฉันด้วย ..

อัปเดต: ฉันได้รู้จัก DataTemplate ในสิ่งที่ แต่ตอนนี้ฉันต้องการทราบเกี่ยวกับคำศัพท์ที่ใช้สำหรับ DataTemplate เช่น ObservableCollection,DataContext และวิธีการตั้งค่าคุณสมบัติ Binding ตามความต้องการของผู้ใช้ ฉันต้องการแนวคิดในการพัฒนาแอปพลิเคชันตัวอย่างประเภทที่คล้ายกันมากเช่นการแบ่งแต่ละรายการของ Combo Box ออกเป็นสามคอลัมน์และเพิ่มเนื้อหาที่แตกต่างกันในคอลัมน์ที่แตกต่างกันแบบไดนามิก

ขอบคุณล่วงหน้า


person SharpUrBrain    schedule 03.12.2010    source แหล่งที่มา


คำตอบ (3)


คุณควรตรวจสอบการสาธิต WPF Quiz: http://community.infragistics.com/pixel8/media/p/91950.aspx มันจะสอน MVVM และพลังของ DataTemplates ให้กับคุณในคราวเดียว :)

person basarat    schedule 03.12.2010

ที่นี่ใช้ง่ายมาก - แต่โดยพื้นฐานแล้ว DataTemplate ช่วยให้คุณสามารถแสดงข้อมูลโดยใช้ XAML

<ItemsControl ItemsSource="{Binding Path=SomeDataCollection}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=SomeProperty}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
person Dean Chalk    schedule 03.12.2010
comment
สวัสดีคณบดี ขอบคุณสำหรับคำตอบของคุณ ฉันซาบซึ้งมากสำหรับคำตอบของคุณ และเราจะยินดีเป็นอย่างยิ่งหากคุณจะแบ่งปันแอปพลิเคชันตัวอย่างใด ๆ ถ้าคุณมี แอปพลิเคชันตัวอย่างเช่นการแบ่งแต่ละรายการของ Combo Box ออกเป็นสามคอลัมน์และเพิ่มเนื้อหาที่แตกต่างกันในคอลัมน์ที่แตกต่างกันแบบไดนามิก - person SharpUrBrain; 05.12.2010

สมมติว่าคุณต้องการแสดงปุ่มในแต่ละรายการของ ComboBox ดังนั้นคุณสามารถทำได้โดยการแทนที่เมธอด ItemTemplate

  <ComboBox>
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <Button Content="Sa"></Button>
                </DataTemplate>
            </ComboBox.ItemTemplate>
   </ComboBox>

และในโค้ดด้านหลัง

        List<string> lst = new List<string>();

        for (int i = 0; i < 5; i++)
        {
            lst.Add("Sa" + i.ToString());
        }

        cmb.ItemsSource = lst;

ดังนั้นเมื่อคุณรันสิ่งนี้ คุณจะได้ผลลัพธ์ที่ต้องการ แต่ละรายการคอมโบจะเป็นปุ่ม

person TalentTuner    schedule 03.12.2010