Get DataContext from UserControl
本文关键字:UserControl from DataContext Get | 更新日期: 2023-09-27 17:58:03
我有一个用户控件,其数据上下文设置为:
<UserControl.Resources>
<data:ArchivosViewModel x:Key="Data" />
</UserControl.Resources>
在这个用户控件中,我想加载一个网格视图,其中包含5列中的对象列表,其中包含多个值(日期、url、名称…和一个删除每行的按钮)。
要添加此按钮,我想使用UserControl ViewModel中的命令和数据网格源数据上下文中的CommandParameter。
我认为最好的方法是将该按钮中的数据上下文设置为静态源,但它不起作用。。。知道怎么做吗?
<sdk:DataGrid AutoGenerateColumns="False" Margin="5" ItemsSource="{Binding Ficheros, Mode=TwoWay, ValidatesOnDataErrors=True}" SelectionMode="Single" Grid.Row="2" Height="Auto" HorizontalAlignment="Stretch" Name="dataGrid1" VerticalAlignment="Stretch" MinHeight="0" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" >
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Header="Fecha">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<sdk:DatePicker SelectedDate="{Binding fecha_fichero, Mode=TwoWay}" Margin="5,0" Width="Auto"></sdk:DatePicker>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTextColumn Binding="{Binding nombre_fichero, Mode=TwoWay}" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Header="Nombre" Width="Auto" />
<sdk:DataGridTextColumn Binding="{Binding descripcion_fichero, Mode=TwoWay}" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Header="Descripción" Width="Auto" />
<sdk:DataGridTemplateColumn Header="Enlace">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<HyperlinkButton Margin="5,0" Width="Auto" NavigateUri="{Binding ruta_fichero, Mode=OneWay}" TargetName="_blank" Content="Abrir Fichero"></HyperlinkButton>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn Header="Eliminar">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Width="Auto" Margin="5,0" Content="Eliminar Fichero" Command="{Binding EliminarArchivoCommand}" ></Button>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
提前谢谢。
try:
Command="{Binding EliminarArchivoCommand,Source={StaticResource Data}}"
和:
CommandArgument="{Binding}"