【发布时间】:2018-06-03 13:07:20
【问题描述】:
我有一个列表框,里面有数据(营养计划)和一个鼠标双击功能,可以在新页面中打开有关某些营养计划信息(每日营养计划)的数据。 GetDailyNutrition 类从第一个列表框获取 Id。
如果我点击列表框上的“营养计划 A”,它应该在不同的列表框(在 NutritionPlan.xaml 视图上)显示每日营养。
问题是,我无法在列表框中显示每日营养。
我的NutritionPlan.xaml.cs 代码:
public partial class NutritionPlan : Page
{
private DailyNutritionPlanVM _dailyNutritionplanvm;
public Models.NutritionPlan _NPlan;
public NutritionPlan(Object NPlan)
{
_NPlan = NPlan as Models.NutritionPlan;
InitializeComponent();
}
public void getDailyNutrition()
{
_dailyNutritionplanvm = new DailyNutritionPlanVM();
_dailyNutritionplanvm.LoadData(_NPlan.NutritionPlanId);
DataContext = _dailyNutritionplanvm;
}
}
我的NutritionPlan.Xaml 代码:
<Grid Background="LightBlue">
<ListBox HorizontalAlignment="Left" Height="123" Margin="88,220,0,0" VerticalAlignment="Top" Width="162">
</ListBox>
</Grid>
获取数据的列表框:
<ListBox x:Name="NutritionPlansControlListBx" Margin="10,5" Height="282" ItemsSource="{Binding NutritionPlans}"
MouseDoubleClick="ListBox_MouseDoubleClick">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding NutritionPlanName}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
MouseDoubleClick 类:
private void ListBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
_frame.Content = new NutritionPlan(NutritionPlansControlListBx.SelectedItem);
}
【问题讨论】:
-
请发布您的代码:鼠标双击、两个列表框、列表框项目的填充方式
-
@Bijan 进行了更改。
-
谢谢。 ListBox_MouseDoubleClick 中的
_frame是什么? -
_frame 是列表框所在的新页面,我要在其中显示每日营养计划数据。 (我有一个窗口分成两半,_frame 是一个秒的半名)
-
您的代码非常混乱,您是否尝试遵循 MVVM 模式?或者你只是想让它工作? NutritionPlan 没有虚拟机,而是有 DailyNutritionPlanVM ...
标签: c# wpf data-binding listbox