Я XAML, который выглядит немного как это:Как передать данные из моего XAML в источник привязки?
<UserControl x:Class="MyNamespace.MyClass"
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:MyNamespace"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="500">
<UserControl.Resources>
<local:MyViewModel x:Key="ViewModel"/>
</UserControl.Resources>
<UserControl.DataContext>
<Binding Source="{StaticResource ViewModel}"/>
</UserControl.DataContext>
<DataGrid Name="_myGrid" AutoGenerateColumns="False"
ItemsSource="{Binding Path=MyDataTable}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Name">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=name}" />
<TextBlock Text="{Binding
Source={StaticResource ViewModel}, Path=IsValidName}"/>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<Grid FocusManager.FocusedElement="{Binding ElementName=NameTextBox}">
<TextBox Name="NameTextBox" Text="{Binding Path=name}" />
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Как вы можете видеть выше, мой DataGrid связывается с таблицей данных, как ее ItemsSource. Обычно я привязываюсь к столбцам в представлении таблицы данных, например «имя». В некоторых случаях я привязываюсь к моей модели представления, а не к DataRowView. Это можно увидеть во втором TextBlock выше, где я привязываюсь к свойству IsValidName модели представления. Мой вопрос: как я могу передавать информацию из моего XAML обратно в источник привязки, в этом случае моя модель просмотра? Я хотел бы передать объект rowIndex, DataRowView, имя или что-то подобное, так что свойство IsValidName в модели представления будет иметь контекст относительно того, какая строка проверяется.
Спасибо,
Notre
Я нашел хак раствора, который я описываю здесь: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/cd8d0c9f-09a7-4c50-bd7c-2bc1ae7356ce Я уверен, что это заставит некоторых людей содрогнуться :) – Notre