none
WPF не работает Binding для DependencyProperty RRS feed

  • Общие обсуждения

  • <Window> 
      <Window.Resources>
            <ObjectDataProvider x:Key="DataProvider" ObjectType="{x:Type da:MyDataSet}" />
            <ObjectDataProvider x:Key="MyData" ObjectInstance="{StaticResource DataProvider}" MethodName="GetData"/>
        </Window.Resources>
        <DockPanel Background="Aqua" VerticalAlignment="Stretch">
            <DataGrid x:Name="lb" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HeadersVisibility="None" AutoGenerateColumns="False" CanUserAddRows="False" 
    ItemsSource="{Binding Source={StaticResource ResourceKey=MyData}}">
                <DataGrid.Columns>
                    <DataGridTemplateColumn Width="*">
                        <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Grid HorizontalAlignment="Stretch">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="250"></ColumnDefinition>
                                    <ColumnDefinition Width="*"></ColumnDefinition>
                                </Grid.ColumnDefinitions>
     <StackPanel  Grid.Column="0">
    <!-- Данные из MyData -->
                                </StackPanel>
                                <StackPanel  Grid.Column="1">
       <!-- Тут данные из дочерней таблицы -->
                                     <StackPanel.Resources>
                                            <ObjectDataProvider x:Key="subData" ObjectInstance="{StaticResource DataProvider}" MethodName="GetSubData">
                                                <ObjectDataProvider.MethodParameters>
                                                    <da:MyShort Value="{Binding Path=subId}" />                                                   
                                                </ObjectDataProvider.MethodParameters>
                                            </ObjectDataProvider>
                                        </StackPanel.Resources>
                                        <TextBlock Text="{Binding Path=subId}"></TextBlock>
                                        <Border BorderThickness="1" BorderBrush="Black" Background="CadetBlue">
                                            <DataGrid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding Source={StaticResource ResourceKey=subData}}"></DataGrid>
                                    </Border>
                                </StackPanel>
                            </Grid>
                        </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
            </DataGrid>
    
        </DockPanel>
    </Window>


        public class MyShort : FrameworkElement
        {
            public static DependencyProperty MyParametr =
                DependencyProperty.Register("Value", typeof(Int16), typeof(MyShort), new FrameworkPropertyMetadata(1));
            public short Value
            {
                get { return (short)GetValue(MyParametr); }
                set { SetValue(MyParametr, value); }
            }
        }

    В результате данные из дочерней таблицы отображаются верно, только  параметр MyShort имеет значение по умолчанию  и не получает данные по привязке! (видно при отладке в методе GetSubData)

    В то же время привязка в TextBlock работает корректно и верно отображает данные, то есть в источнике данных проблем нет.

    6 декабря 2012 г. 12:29

Все ответы

  • Привет.

    Посмотрите в окне Output есть ли ошибки привязки?


    Для связи [mail]

    7 декабря 2012 г. 11:37
  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]

    19 декабря 2012 г. 8:28