簡體   English   中英

從 UserControl 獲取 DataContext

[英]Get DataContext from UserControl

我有一個用戶控件,其數據上下文設置為:

<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>

提前致謝。

嘗試:

 Command="{Binding EliminarArchivoCommand,Source={StaticResource Data}}" 

和:

CommandArgument="{Binding}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM