我有一个包含食物类型的表格。每种食物类型每人有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