Sale a tutti, volevo chiedere delle informazioni su un'operazione che non riesco a risolvere
Mi spiego:
In un software che sto sviluppando utilizzo spesso la datagrid e abbinata ad essa inserisco sempre 3 pulsanti che eseguono del codice.
Per non dover sempre scrivere il tutto ogni volta che inserisco questo controllo ho pensato di creare una mia UserControl. Perciò ho creato la mia Libreria di Controlli Utente per WPF ed ho creato il mio UserControl
Questo è il codice XAML:
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:MyControl" xmlns:igDP="http://infragistics.com/DataPresenter" x:Class="MyPersonalControl" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="40"/> <RowDefinition Height="21*"/> Grid.RowDefinitions> <Button x:Name="btn_Open" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="32" Height="32" ToolTip="Apri configurazione griglia" Click="btn_Open_Click"> <Image Source="Images/open.png" ToolTip="Apri configurazione griglia"/> Button> <Button x:Name="btn_Save" HorizontalAlignment="Left" Margin="50,10,0,0" VerticalAlignment="Top" Width="32" Height="32" ToolTip="Salva configurazione griglia" Click="btn_Save_Click" > <Image Source="Images/save.png" ToolTip="Salva configurazione griglia" /> Button> <Button x:Name="btn_ExportExcel" HorizontalAlignment="Left" Margin="90,10,0,0" VerticalAlignment="Top" Width="32" Height="32" ToolTip="Esporta griglia in formato Excel" Click="btn_ExportExcel_Click"> <Image Source="Images/excel.png" ToolTip="Esporta griglia in formato Excel" /> Button> <igDP:XamDataGrid x:Name="MyGrid" HorizontalAlignment="Stretch" Height="Auto" Margin="0" Grid.Row="1" VerticalAlignment="Stretch" Width="Auto"/> Grid>UserControl>
Questo è il codice vb:
Imports System.IOImports System.ReflectionImports System.TextImports Infragistics.Windows.DataPresenter.ExcelExporterPublic Class MyPersonalControl Inherits System.Windows.Controls.UserControl Public Shared ReadOnly MyXamDataGridDependency As DependencyProperty = DependencyProperty.Register("XamMyGrid", GetType(Infragistics.Windows.DataPresenter.XamDataGrid), GetType(MyPersonalControl), New FrameworkPropertyMetadata(AddressOf MyGridChanged)) Public Property XamMyGrid As Infragistics.Windows.DataPresenter.XamDataGrid Get Return GetValue(MyXamDataGridDependency) End Get Set(value As Infragistics.Windows.DataPresenter.XamDataGrid) SetValue(MyXamDataGridDependency, value) End Set End Property Public Sub New() InitializeComponent() End Sub Private Shared ReadOnly mClassName As String = System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.Name Private Shared Sub MyGridChanged(sender As DependencyObject, e As DependencyPropertyChangedEventArgs) Dim myUserControl As MyPersonalControl = TryCast(sender, MyPersonalControl) If myUserControl IsNot Nothing Then myUserControl.Content.XamMyGrid = e.NewValue End If End Sub bla... bla...End Class
Ora vorre che nell'utilizzare il mio usercontrol vorrei esporre la mia datagrid così da poterla gestire a mio piacimento sia per il binding che per le varie configurazioni delle colonne ecc. ecc.
Però nel codice vb riesco ad accedere alla mia proprietà XamMyGrid
ma nel codice XAML non riesco ad accedere alla mia datagrid
Il mio obiettivo è ottenere un cose del genere:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:HHdtTest" xmlns:MyControl="clr-namespace:MyControl;assembly=MyControl" x:Class="MainWindow" mc:Ignorable="d" Title="MainWindow" Height="350" Width="525"> <Grid> <MyControl:MyPersonalControl HorizontalAlignment="Left" VerticalAlignment="Top" Height="319" Width="517"> <MyControl:MyPersonalControl.XamMyGrid> <bla.. <bla.. MyControl:MyPersonalControl.XamMyGrid> MyControl:MyPersonalControl> Grid>Window
Ho fatto ricerche su internet ma non capisco dove sto sbagliando.
Mi potreste aiutare, vi sarei infinitamente grato.
Vi ringrazio anticipatamente