Boa tarde! é a primiera vez que escrevo ca, vou tentar fazer-m entender!
tenho uma base dados e fiz a ligação entre o silverlight atraves do serviço ADO.net
Tenho uma datagrid para mostrar os dados da tabela iniciativa da base de dados:
<Grid Grid.ColumnSpan="1" Grid.Row="1">
<sdkataGrid AutoGenerateColumns="False" ItemsSource="{Binding ElementName=iNICIATIVADomainDataSource, Path=Data}" Name="iNICIATIVADataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" Loaded="ddddddddd">
<sdkataGrid.Columns>
<sdkataGridTextColumn x:Name="iNI_IDColumn" Binding="{Binding Path=INI_ID, Mode=OneWay}" Header="ID" IsReadOnly="True" Width="SizeToHeader" />
<sdkataGridTextColumn x:Name="iNI_NOMEColumn" Binding="{Binding Path=INI_NOME}" Header="Nome" Width="SizeToHeader" />
<sdkataGridTextColumn x:Name="iNI_AtlIDColumn" Binding="{Binding Path=INI_AtlID}" Header="Atlier" Width="SizeToHeader" />
<sdkataGridTextColumn x:Name="iNI_ResIDColumn" Binding="{Binding Path=INI_ResID}" Header="Responsavel" Width="SizeToHeader" />
</sdkataGrid.Columns>
</sdkataGrid>
</Grid>
<riaControlsomainDataSource AutoLoad="True" designData="{designInstance my:INICIATIVA, CreateList=true}" Height="0" LoadedData="iNICIATIVADomainDataSource_LoadedData" Name="iNICIATIVADomainDataSource" QueryName="GetINICIATIVAsQuery" Width="0">
<riaControlsomainDataSource.FilterDescriptors>
<riaControls:FilterDescriptor Operator="IsEqualTo" PropertyPath="INI_Activo" Value="0" />
</riaControlsomainDataSource.FilterDescriptors>
<riaControlsomainDataSource.DomainContext>
<my:servico_db />
</riaControlsomainDataSource.DomainContext>
</riaControlsomainDataSource>
Como podem ver no riaControl tenho um filtro que apenas me coloca na datagrid todos os campos da tabela que possuam o valor INI_Activo=0
ao carregar num botao aparece uma childwindows para inserir um novo registo na tabela!
ao clicar no botao "ok" da childwindows, o registo é inserido, mas a datagrid n é actulizada, como faço para actualizar, usar datagrid.itemsource ta fora de questão pois anula o filtro do riacontrol!
codigo da childwindows para registar e do botao "ok":
servico_db servico = new servico_db(); //domainservice
Act_Gerir_act x = new Act_Gerir_act(); //outra childwindows
Actividades act = new Actividades(); //pagina onde esta a datagrid
private void OKButton_Click(object sender, RoutedEventArgs e)
{
INICIATIVA nova = new INICIATIVA();
nova.INI_NOME = iNI_NOMETextBox.Text;
nova.INI_ResID = servico.RESPONSAVELs.ElementAt(rES_NomeComboBox.SelectedIndex).RES_ID;
nova.INI_AtlID = servico.ATLIERs.ElementAt(aTL_NOMEComboBox.SelectedIndex).ATL_Id;
if (CB_Activar.IsChecked == false)
{
nova.INI_Activo = 0;
servico.INICIATIVAs.Add(nova);
servico.SubmitChanges();
Close();
}
else if (CB_Activar.IsChecked == true)
{
nova.INI_Activo = 1;
servico.INICIATIVAs.Add(nova);
servico.SubmitChanges();
Close();
x.Show();
x.atl.Content = nova.INI_AtlID.ToString();
x.Act.Content = nova.INI_NOME;
x.resp.Content = nova.INI_ResID.ToString();
}
Close();
}
alguem me pode ajudar???desde já peço desculpa pelo longo post... Obrigado!<br><br><br>
tenho uma base dados e fiz a ligação entre o silverlight atraves do serviço ADO.net
Tenho uma datagrid para mostrar os dados da tabela iniciativa da base de dados:
<Grid Grid.ColumnSpan="1" Grid.Row="1">
<sdkataGrid AutoGenerateColumns="False" ItemsSource="{Binding ElementName=iNICIATIVADomainDataSource, Path=Data}" Name="iNICIATIVADataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" Loaded="ddddddddd">
<sdkataGrid.Columns>
<sdkataGridTextColumn x:Name="iNI_IDColumn" Binding="{Binding Path=INI_ID, Mode=OneWay}" Header="ID" IsReadOnly="True" Width="SizeToHeader" />
<sdkataGridTextColumn x:Name="iNI_NOMEColumn" Binding="{Binding Path=INI_NOME}" Header="Nome" Width="SizeToHeader" />
<sdkataGridTextColumn x:Name="iNI_AtlIDColumn" Binding="{Binding Path=INI_AtlID}" Header="Atlier" Width="SizeToHeader" />
<sdkataGridTextColumn x:Name="iNI_ResIDColumn" Binding="{Binding Path=INI_ResID}" Header="Responsavel" Width="SizeToHeader" />
</sdkataGrid.Columns>
</sdkataGrid>
</Grid>
<riaControlsomainDataSource AutoLoad="True" designData="{designInstance my:INICIATIVA, CreateList=true}" Height="0" LoadedData="iNICIATIVADomainDataSource_LoadedData" Name="iNICIATIVADomainDataSource" QueryName="GetINICIATIVAsQuery" Width="0">
<riaControlsomainDataSource.FilterDescriptors>
<riaControls:FilterDescriptor Operator="IsEqualTo" PropertyPath="INI_Activo" Value="0" />
</riaControlsomainDataSource.FilterDescriptors>
<riaControlsomainDataSource.DomainContext>
<my:servico_db />
</riaControlsomainDataSource.DomainContext>
</riaControlsomainDataSource>
Como podem ver no riaControl tenho um filtro que apenas me coloca na datagrid todos os campos da tabela que possuam o valor INI_Activo=0
ao carregar num botao aparece uma childwindows para inserir um novo registo na tabela!
ao clicar no botao "ok" da childwindows, o registo é inserido, mas a datagrid n é actulizada, como faço para actualizar, usar datagrid.itemsource ta fora de questão pois anula o filtro do riacontrol!
codigo da childwindows para registar e do botao "ok":
servico_db servico = new servico_db(); //domainservice
Act_Gerir_act x = new Act_Gerir_act(); //outra childwindows
Actividades act = new Actividades(); //pagina onde esta a datagrid
private void OKButton_Click(object sender, RoutedEventArgs e)
{
INICIATIVA nova = new INICIATIVA();
nova.INI_NOME = iNI_NOMETextBox.Text;
nova.INI_ResID = servico.RESPONSAVELs.ElementAt(rES_NomeComboBox.SelectedIndex).RES_ID;
nova.INI_AtlID = servico.ATLIERs.ElementAt(aTL_NOMEComboBox.SelectedIndex).ATL_Id;
if (CB_Activar.IsChecked == false)
{
nova.INI_Activo = 0;
servico.INICIATIVAs.Add(nova);
servico.SubmitChanges();
Close();
}
else if (CB_Activar.IsChecked == true)
{
nova.INI_Activo = 1;
servico.INICIATIVAs.Add(nova);
servico.SubmitChanges();
Close();
x.Show();
x.atl.Content = nova.INI_AtlID.ToString();
x.Act.Content = nova.INI_NOME;
x.resp.Content = nova.INI_ResID.ToString();
}
Close();
}
alguem me pode ajudar???desde já peço desculpa pelo longo post... Obrigado!<br><br><br>
Última edição: