मेरे पास ऑब्जेक्ट्स की एक सरणी है जो मूल रूप से विभिन्न श्रेणियों के लिए आईडी/मानों का ग्रिड है। यदि मैं श्रेणी द्वारा आदेशित संग्रह को बांधता हूं तो क्या मैं सूची दृश्य में टेक्स्टबॉक्स के "ग्रिड" को बांध सकता हूं? आईडी मान ज्ञात होंगे। उदाहरण नीचे स्पष्ट करने के लिए। मैं यूआई को संभाल सकता हूं, लेकिन मैं यह नहीं समझ सकता कि आईडी द्वारा "स्थान" कैसे किया जाए, लेकिन जब तक मैं कोड-बैक में यूआई को पंट और बना नहीं देता, तब तक मूल्य दिखाएं/बाध्य करें।
public class MyItem {
string ID;
string Value;
string Category;
}
with values:
{ id1, value1a, catA}
{ id2, value1b, catA}
{ id1, value2a, catB}
{ id2, value2a, catB}
वांछित यूआई बाध्यकारी (प्रत्येक श्रेणी के मूल्यों को दिखाने वाली प्रत्येक पंक्ति के साथ सूची दृश्य):
value1a value1b
value2a value2b
2 जवाब
आपके मामले में मेरा सुझाव है कि आप ListView
के बजाय GridView
का उपयोग करें
<GridView x:Name="categoryGrid" SizeChanged="GridView_SizeChanged" >
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
</Style>
</GridView.ItemContainerStyle>
<GridView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value}"/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
GridViewItem की चौड़ाई सेट करने के लिए SizeChanged ईवेंट हैंडलर का उपयोग करें।
private async void GridView_SizeChanged(object sender, SizeChangedEventArgs e)
{
try
{
ItemsWrapGrid itemsWPGrid = (ItemsWrapGrid)((GridView)sender).ItemsPanelRoot;
double viewWidth = ApplicationView.GetForCurrentView().VisibleBounds.Width;
itemsWPGrid.ItemWidth = (viewWidth) / 2;
}
catch
{
}
}
और categoryGrid.ItemsSource = yourCustomList;
सेट करना न भूलें
आप एक ListView
बना सकते हैं और कुछ गुणों को अपने मॉडल से बाँध सकते हैं। उदाहरण के लिए
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding ID}" />
<TextBlock Grid.Column="1" Text="{Binding Value}" />
<TextBlock Text="{Binding Category}" />
<Etc />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>