我有一個包含食物類型的表格。每種食物類型每人有12排。項目控制中的標題
我需要做的是選擇一個人後,itemcontrol會顯示每個食物類型的12行。
我已經成功達到這一點,但我想要的是每行12行以上的標題,說明食物類型,而不是在每行重複它。
有沒有人知道一種方法來完成這個?
我到目前爲止唯一的方法是在itemcontrol中放置一個headereditemscontrol。對於這樣一個簡單的問題,這似乎是一個非常複雜的方式。
在此先感謝您的幫助。
我有一個包含食物類型的表格。每種食物類型每人有12排。項目控制中的標題
我需要做的是選擇一個人後,itemcontrol會顯示每個食物類型的12行。
我已經成功達到這一點,但我想要的是每行12行以上的標題,說明食物類型,而不是在每行重複它。
有沒有人知道一種方法來完成這個?
我到目前爲止唯一的方法是在itemcontrol中放置一個headereditemscontrol。對於這樣一個簡單的問題,這似乎是一個非常複雜的方式。
在此先感謝您的幫助。
嘗試:
XAML:
<StackPanel Grid.Row="1">
<TextBlock Text="{Binding Path=FoodTypes[0].Description}" />
<ItemsControl ItemsSource="{Binding Path=FoodTypes}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Margin="15,0,0,0" Text="{Binding Path=Text}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
代碼:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new MyViewModel();
}
}
public class FoodType
{
public string Description {get;set;}
public string Text {get;set;}
}
class MyViewModel : INotifyPropertyChanged
{
private ObservableCollection<FoodType> foodTypes;
public ObservableCollection<FoodType> FoodTypes
{
get { return this.foodTypes; }
set
{
this.foodTypes = value;
this.OnPropertyChanged("FoodTypes");
}
}
public MyViewModel()
{
this.FoodTypes = new ObservableCollection<FoodType>();
this.FoodTypes.Add(new FoodType() { Description = "Test1", Text = "Something" });
this.FoodTypes.Add(new FoodType() { Description = "Test1", Text = "Something Else" });
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
var handler = this.PropertyChanged;
if(handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
這樣會很好,但每個人可以有超過1種食物類型,所以文本塊不會綁定到正確的食物類型。 –
@RichardHarrison我想這是有點兒在我發現你的問題有些困惑。所以你想要每個項目的標題?你能澄清一下你的意思嗎?「但是我想要的是每行12行以上的標題,說明食物類型,而不是每行都重複......」謝謝。 – MisterXero
我有一個計劃將12個字段添加到表中,而不是每個條目12個行。這將適用於此實例,但我仍然想知道我將如何做到這一點以備將來參考。 –
也許我有點視覺,但是,您可以加入你的代碼結構和/或你的圖像'試圖完成? –
對不起,現在在我的手機上,當我明天回來時,我會發布Code。 –
@RichardHarrison在我看到您對發佈代碼的評論之前,剛剛完成了輸入內容。我在黑暗中拍攝了一張照片,並認爲我會發佈一個答案。 – MisterXero