मेरे पास एक संग्रह है जिसे मैं एक WPF ग्रिड से बांधना चाहता हूं।गतिशील कॉलम के साथ wpf ग्रिड
मुझे जिस समस्या का सामना करना पड़ रहा है वह यह है कि कॉलम की संख्या गतिशील है और संग्रह पर निर्भर है।
public interface IRows
{
string Message{get;}
IColumns[] Columns{get;}
}
public interface IColumns
{
string Header {get;}
AcknowledgementState AcknowledgementState{get;}
}
public interface IViewModel
{
ObservableCollection<IRows> Rows {get;}
}
मैं मेरे विचार पंक्तियाँ संग्रह है, जो कॉलम का संग्रह होता करने के लिए बाध्य करना चाहते हैं: यहाँ एक सरल ऊपर नकली है।
मेरे कॉलम संग्रह में एक enum होता है जिसे एक छवि (3 संभावनाओं में से 1) द्वारा दर्शाया जाना चाहिए। इसमें एक संदेश संपत्ति भी होती है जिसे केवल एक कॉलम में प्रदर्शित किया जाना चाहिए (स्थिर और केवल कुछ टेक्स्ट जानकारी है)। इसमें एक शीर्षलेख स्ट्रिंग भी शामिल है जिसे उस कॉलम के लिए शीर्षलेख के रूप में प्रदर्शित किया जाना चाहिए।
ध्यान दें कि स्तंभों की संख्या चर रहा है (इस समय हेडर स्वीकार की तैयारी में हैं, लेकिन यह गतिशील डेटा का प्रतिनिधित्व करने के लिए बदल जाएगा)।
अपडेट: यह राहेल
<ItemsControl
ItemsSource="{Binding Items, Converter={StaticResource PresentationConverter}}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid ShowGridLines="true"
local:GridHelpers.RowCount="{Binding RowCount}"
local:GridHelpers.ColumnCount="{Binding ColumnCount}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Grid.Row" Value="{Binding RowIndex}"/>
<Setter Property="Grid.Column" Value="{Binding ColumnIndex}"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentControl Content="{Binding}">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type UI:MessageEntity}">
<TextBox Text="{Binding Message}"></TextBox>
</DataTemplate>
<DataTemplate DataType="{x:Type UI:StateEntity}">
<TextBox Text="{Binding State}"></TextBox>
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
से सुझाव को लागू करने के बाद यह लगभग मुझे देता है अब मैं क्या चाहता हूँ। मैं केवल हेडर्स के लिए क्या करना चाहिए इसके साथ अटक गया हूं। कोई भी सुझाव स्वागत है।
प्राप्त करने के लिए ऐसा करने के लिए, अधिकतम जानकारी देने का एक उदाहरण के साथ उठाया है। लिंक शामिल है ... – Harry
सरलीकृत और एक लिंक जोड़ा। – zman
पंक्तियों और coloumns गतिशील रूप से जोड़ने के तरीके पर लिंक - http://stackoverflow.com/questions/13344788/how-to-create-listview-to-a-grid-programmatically/ – Sai