gpt4 book ai didi

silverlight - 数据网格列按钮命令(MVVM)

转载 作者:行者123 更新时间:2023-12-04 03:24:27 24 4
gpt4 key购买 nike

我有以下内容

<ResourceDictionary 

xmlns:vm="clr-namespace:SilverlightApplication1.ViewModels.Controls">

<DataTemplate DataType="vm:CVItemVM" x:Key="viewmodel">

..........

                    <sdk:DataGrid Grid.Row="1" AutoGenerateColumns="False" Width="820" MaxColumnWidth="395" ItemsSource="{Binding Path=Publications}" Visibility="{Binding Path=Publications.Count, Converter={StaticResource ConverterVisibility2_1}}">
<sdk:DataGrid.ColumnHeaderStyle>
<Style TargetType="sdk:DataGridColumnHeader">
<Setter Property="FontWeight" Value="Bold" />
</Style>
</sdk:DataGrid.ColumnHeaderStyle>
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="Title" Binding="{Binding Path=Title}" CanUserResize="False" IsReadOnly="True" />
<sdk:DataGridTextColumn Header="Author" Binding="{Binding Path=Author}" CanUserResize="False" IsReadOnly="True" />
<sdk:DataGridTemplateColumn Header="">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="{Binding Path=Id}" Command="{Binding Path=DeleteCommand, Mode=TwoWay}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>

我遇到的问题是

<Button Content="{Binding Path=Id}" Command="{Binding Path=DeleteCommand, Mode=TwoWay}" />                                            

不触发绑定(bind)的命令。

ItemsSource="{Binding Path=Publications}"

指的是下面的(在viewmodel中)

public ObservableCollection<PublicationVM> Publications

暴露相同的 View 模型

public ICommand DeleteCommand { get; set; }

最佳答案

<Button Content="{Binding Path=Id}" Command="{Binding Path=DeleteCommand, Mode=TwoWay}" />

此代码试图从 PublicationVM 对象访问 DeleteCommand 属性。如果在那里定义了这样的属性,它应该可以工作(如果属性不是 null ofc。)。如果 DeleteCommand 在同一 VM 中定义,其中

public ObservableCollection<PublicationVM> Publications

然后你应该对你的虚拟机使用RelativeSource,例如:

<Button Content="{Binding Path=Id}" Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource AncestorType=UserControl}}" />

where UserControl - 您的控件类型 where DataContext = YourViewModel

关于silverlight - 数据网格列按钮命令(MVVM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13746219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com