Hallo zusammen
Ich bin ein wenig mit den RIA-Services für Silverlight am Experimentieren. Nun habe ich folgendes vor:
Nun habe ich dass Problem, dass der TreeView die Daten erhält und auch darstellt, aber die in den Expandern enthaltenen DataForm bekommen die darunter liegenden Daten nicht.
Ich danke für die Hilfe.
<Grid x:Name="LayoutRoot">
<controls:TreeView x:Name="WorkflowTreeView">
<controls:TreeView.ItemTemplate>
<DataTemplate>
<controlsToolkit:Expander Header="Activity" Margin="10">
<controlsToolkit:WrapPanel Loaded="WrapPanel_Loaded">
<TextBlock Text="{Binding T_Id}" Margin="10"></TextBlock>
<TextBlock Text="{Binding State}" Margin="10"></TextBlock>
<dataFormToolkit:DataForm x:Name="StepsDataForm" AutoGenerateFields="True"></dataFormToolkit:DataForm>
</controlsToolkit:WrapPanel>
</controlsToolkit:Expander>
</DataTemplate>
</controls:TreeView.ItemTemplate>
</controls:TreeView>
</Grid>
Hier noch die Code-behind.
namespace Buraut.Ais.Workflow.Presentation
{
public partial class MainPage : UserControl
{
private WorkflowPresentationDomainContext _ctx = new WorkflowPresentationDomainContext();
private IEnumerable _activities = new List<Activity>();
private IEnumerable _steps = new List<Step>();
public MainPage()
{
InitializeComponent();
_activities = _ctx.Activities;
_ctx.Load<Activity>(_ctx.GetActivityQuery());
WorkflowTreeView.ItemsSource = _activities;
}
private void GetSteps(long activityId)
{
_ctx.Load<Step>(_ctx.GetStepQuery(activityId));
}
private void WrapPanel_Loaded(object sender, RoutedEventArgs e)
{
_activities = _ctx.Activities;
_ctx.Load<Activity>(_ctx.GetActivityQuery());
WorkflowTreeView.ItemsSource = _activities;
foreach (var activity in _activities)
{
Activity ac = (Activity)activity;
Expander containerExpander = (Expander)WorkflowTreeView.ItemTemplate.LoadContent();
DataForm stepsDataForm = (DataForm)containerExpander.FindName("StepsDataForm");
GetSteps(ac.T_Id);
_steps = _ctx.Steps;
stepsDataForm.ItemsSource = _steps;
}
}
}
}
Danke für die Rückmeldungen.
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt