こんにちは、通常は自動的に機能するはずですが、機能しません
XAML:
<DataGrid AutoGenerateColumns="False" Width="350" IsReadOnly="True"
ItemsSource="{Binding StichwortList}" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding DisplayName}" Width="350">
<DataGridTextColumn.Header>
<DockPanel Margin="0" Width="340" HorizontalAlignment="Stretch" LastChildFill="True">
<TextBlock DockPanel.Dock="Left" Margin="0" Text="Name"/>
<Button DockPanel.Dock="Right" Content="-" Margin="0" Width="23" Command="{Binding RemoveStichwortCommand}"/>
<Button DockPanel.Dock="Right" Content="+" Margin="0" Width="23" Command="{Binding AddStichwortCommand}"/>
<Label />
</DockPanel>
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
関連コード:
private RelayCommand _addStichwortCommand;
public ICommand AddStichwortCommand
{
get { return _addStichwortCommand ?? (_addStichwortCommand = new RelayCommand(param => this.OnAddStichwort())); }
}
private void OnAddStichwort()
{
// some code
}
private RelayCommand _removeStichwortCommand;
public ICommand RemoveStichwortCommand
{
get { return _removeStichwortCommand ?? (_removeStichwortCommand = new RelayCommand(param => this.OnRemoveStichwort())); }
}
private void OnRemoveStichwort()
{
// some code
}
このビューへの他のバインディングは機能し、コマンド バインディングも正常に機能します
私のバインディングの何が問題なのか誰か教えてください。
編集
忘れてた
それはすべて、すべてのプロパティとバインディングとコマンドUsercontrol
を含むDatacontext
ソウルション:
彼をDockPanel
にバインドする必要があり、名前が必要ですDatacontext
Usercontrol
Datacontext
Usercontrol
x:Name="uc"
<DockPanel Margin="0" Width="340" HorizontalAlignment="Stretch" LastChildFill="True" DataContext="{Binding ElementName=uc, Path=DataContext}">
<TextBlock DockPanel.Dock="Left" Margin="0" Text="Name"/>
<Button DockPanel.Dock="Right" Content="-" Margin="0" Width="23" Command="{Binding RemoveStichwortCommand}"/>
<Button DockPanel.Dock="Right" Content="+" Margin="0" Width="23" Command="{Binding AddStichwortCommand}"/>
<Label />
</DockPanel>
上記の解決策がうまくいかない場合は、この回答をご覧ください