Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Binding UserControl не работает / 25 сообщений из 44, страница 1 из 2
13.01.2011, 08:24
    #37055856
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Доброго времени суток. Есть вопрос к знатокам.
Есть юзер контрол:

Код: plaintext
    public partial class CueControl : UserControl\n    {\n        public static readonly DependencyProperty CurrentCueCountProperty =\n            DependencyProperty.Register("CurrentCueCount", typeof(int), typeof(CueControl), new PropertyMetadata(0, OnMyPropertyChanged));\n\n        public  int CurrentCueCount\n        {\n            get { return (int)GetValue(CurrentCueCountProperty); }\n            set \n            {\n                SetValue(CurrentCueCountProperty, value);\n            }\n        }\n\n        private static void OnMyPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)\n        {\n            CueControl control = d as CueControl;\n            if (control == null)\n            {\n                return;\n            }\n    \n            control.UpdateLayout();\n\n        }\n...

В XAML в DataTemplate есть привязка такого рода:
Код: plaintext
<cueselector:CueControl x:Name="cuecontrol" CurrentCueCount="{Binding CueCount, Mode=TwoWay}" />

Так вот вопрос, я должен менять в юзерконтроле значение, а оно в свою очередь лолжно писаться в CueCount. Но не пишется!
А если написать так:
Код: plaintext
<TextBox x:Name="tb" Text="{Binding CueCount}" />
то работает. Как сделать то привязку?
Тут смотрел, но че то не догнал. На пальцах мож кто объяснит.
...
Рейтинг: 0 / 0
13.01.2011, 08:32
    #37055864
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Вот ссылка на аналогичную проблему. Какой DataContext нах там еще...
У меня DataTemplate натягивается на элемент коллекции которую в свою очередь привязываю через ItemsSource
...
Рейтинг: 0 / 0
13.01.2011, 09:58
    #37055971
Denis Gladkikh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
aleks-sam,

покажите XAML разметку этого контрола, и еще того, где он используется
...
Рейтинг: 0 / 0
13.01.2011, 10:07
    #37055989
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Контрол:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<UserControl x:Class="CueSelectorControl.CueControl"
             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">
    <UserControl.Resources >

... Ресурсы контрола ...
</UserControl.Resources>
        <Grid x:Name="LayoutRoot">
        ... Тело контрола ...
    </Grid>
    
</UserControl>

Где используется:

Код: plaintext
1.
2.
3.
4.
5.
        <DataTemplate x:Key="DefaultDataTemplate">
            <Border Width="240" Height="270">
                  <cueselector:CueControl x:Name="cuecontrol" CurrentCueCount="{Binding CueCount, Mode=TwoWay}"/>
            </Border>
        </DataTemplate>

Этот DataTemplate натягивается на элемент списка (ListBox)
И списку назначается коллекция (List<xxxx>) через ItemsSource, где xxxx это класс в котором есть поле:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
        private int _cueCount;
        public int CueCount
        {
            get { return _cueCount; }
            set 
            {
                _cueCount = value;
                OnPropertyChanged(new PropertyChangedEventArgs("CueCount"));
            }
        }
...
Рейтинг: 0 / 0
13.01.2011, 10:13
    #37056001
Denis Gladkikh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
aleks-sam,

в этом UserControl нигде не указывается никаких объектов для DataContext?
...
Рейтинг: 0 / 0
13.01.2011, 10:32
    #37056042
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Denis Gladkikhaleks-sam,

в этом UserControl нигде не указывается никаких объектов для DataContext?
Нет. А надо?
...
Рейтинг: 0 / 0
13.01.2011, 10:35
    #37056046
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Я просто не понял коллегу (ссылку в первом топике приводил), он там говорил про это. Не знаю куда прикрутить надо.
...
Рейтинг: 0 / 0
13.01.2011, 10:50
    #37056103
Denis Gladkikh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
aleks-sam,

вот я написал пример того, что вы мне рассказали, у меня все отлично работает, смотрите в output window при запуске с отладчиком. смотрите чем ваш пример отличается. по поводу приведенного кода, вы бы мне еще xaml UserControl могли бы уж просто привести <UserControl ... > ... </UserControl>, что уж лишнее-то писать. ;)
...
Рейтинг: 0 / 0
13.01.2011, 10:54
    #37056114
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Denis Gladkikhaleks-sam,

вот я написал пример того, что вы мне рассказали, у меня все отлично работает, смотрите в output window при запуске с отладчиком. смотрите чем ваш пример отличается. по поводу приведенного кода, вы бы мне еще xaml UserControl могли бы уж просто привести <UserControl ... > ... </UserControl>, что уж лишнее-то писать. ;)
Да в теле контрола не важно же что там. Там просто еще 2 кнопки и текстовое поле. Никаких привязок, ничего нет больше.
За пример спасибо. Ща посмотрю.
...
Рейтинг: 0 / 0
13.01.2011, 11:26
    #37056234
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
        private int _cueCount;
        public int CueCount
        {
            get { return _cueCount; }
            set 
            {
                _cueCount = value;
                PropertyChanged(this, new PropertyChangedEventArgs("CueCount"));
            }
        }}

У меня в проге не вызывается метод SET.

Вопрос:
Вот ты делаешь так:
<Window.DataContext>
<WpfApplication2:ViewModel />
</Window.DataContext>

И потом привязываешься:
<ListBox ItemsSource="{Binding Items}" >

У меня список в этом же окне, как мне в DataContext указать текущее окно или объект?
...
Рейтинг: 0 / 0
13.01.2011, 11:43
    #37056280
Denis Gladkikh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
aleks-sam,

еще раз, покажите весь код xaml где вы используете этот UserControl, а так же код xaml самого UserControl
...
Рейтинг: 0 / 0
13.01.2011, 11:54
    #37056313
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Это контрол где используется тот злополучный контрол (Контрол в контроле :) ) :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
<UserControl x:Class="Billiards.TablesSurface"
             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:ei="http://schemas.microsoft.com/expression/2010/interactions"
             xmlns:ee="http://schemas.microsoft.com/expression/2010/effects"
             xmlns:local="clr-namespace:Billiards"
             xmlns:cueselector="clr-namespace:CueSelectorControl;assembly=CueSelectorControl"
             mc:Ignorable="d" 
             d:DesignHeight="600" d:DesignWidth="800" Loaded="UserControl_Loaded" Unloaded="UserControl_Unloaded">

    <UserControl.Resources>


        <DataTemplate x:Key="DefaultDataTemplate">
            <Border Width="240" Height="270" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Padding="4" Margin="3" Background="#FF293955" CornerRadius="5" BorderBrush="#FF000000" BorderThickness="2">
                <Border VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Padding="4" Background="#FFFFFFFF" CornerRadius="5" BorderBrush="#FF000000" BorderThickness="0">
                    <Border VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Padding="4" Background="#FF293955" CornerRadius="5" BorderBrush="#FF000000" BorderThickness="0">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="auto"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="*" />
                                <RowDefinition Height="auto" />
                            </Grid.RowDefinitions>

                            <StackPanel Orientation="Vertical" Grid.Column="1">
                                <Button x:Name="btnshield" Click="btnshield_Click" ToolTipOpening="tooltshield_ToolTipOpening" Content="" Height="35" Style="{DynamicResource ButtonStyleShield}" Width="28" Margin="20,0,0,0">
                                    <Button.ToolTip>
                                        <TextBlock/>
                                    </Button.ToolTip>
                                </Button>
                                <Button x:Name="btn_note" Click="btn_note_Click" Content="" HorizontalAlignment="Right" Style="{DynamicResource ButtonStyleNote}" Width="28" Margin="0,20,0,0"/>
                                <!--<TextBox x:Name="tb" Width="50" Text="{Binding CueCount}" />-->
                                <cueselector:CueControl x:Name="cuecontrol" CurrentCueCount="{Binding CueCount, Mode=TwoWay}"  HorizontalAlignment="Right" Margin="0,20,0,0" />
                            </StackPanel>
                            
                            <StackPanel Orientation="Vertical" HorizontalAlignment="Stretch">
                                <StackPanel Orientation="Horizontal">
                                    <ToggleButton Content="ToggleButton" IsChecked="{Binding Isstarted}" IsEnabled="False" HorizontalAlignment="Left" Height="30" Style="{DynamicResource ToggleButtonStyleBilliards}" VerticalAlignment="Center" Width="30"/>
                                    <TextBlock Text="{Binding Playtablename}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White" FontSize="27" FontWeight="Bold" FontFamily="Buxton Sketch" />
                                </StackPanel>
                                
                               
                                <TextBlock Text="{Binding Tablegamename}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White" FontSize="15" FontWeight="Medium" FontFamily="Buxton Sketch" />
                                <!--<Image Source="/Billiards;component/Images/bili.jpg" />-->
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding GameTypeLabel}" Foreground="White" VerticalAlignment="Center"/>
                                    <TextBlock Text="{Binding Timecontent}" Foreground="{Binding Labelbrush}" FontSize="32" FontWeight="Bold" FontFamily="Quartz MS"/>
                                </StackPanel>

                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="Начало: " Foreground="White"/>
                                    <TextBlock Text="{Binding StartDateLabel, StringFormat='ddd, HH:mm', ConverterCulture='ru-RU'}" Foreground="White"/>
                                </StackPanel>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="Конец: " Foreground="White"/>
                                    <TextBlock Text="{Binding StopDate, StringFormat='ddd, HH:mm', ConverterCulture='ru-RU'}" Foreground="White"/>
                                </StackPanel>

                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="Затрачено денег: " Foreground="White"/>
                                    <TextBlock Text="{Binding Moneycount, StringFormat='c', ConverterCulture='ru-RU'}" Foreground="White" />
                                </StackPanel>

                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="Игра: " Foreground="White"/>
                                    <TextBlock Text="{Binding Gamestatuslabel}" Foreground="White" />
                                </StackPanel>
                            </StackPanel>
                            <Button Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Content="{Binding Btncaption, Mode=TwoWay}" Style="{DynamicResource ButtonStyleBilliards}" Width="180" Height="35" FontSize="20" FontWeight="Bold" Foreground="{Binding Btnbrush}" Tag="{Binding Id}" Click="Button_Click" Margin="0,0,0,5" />
                        </Grid>
                    </Border>
                </Border>
            </Border>
        </DataTemplate>

        <DataTemplate x:Key="OrderDataTemplate">
            <Border Width="240" Height="230" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Padding="4" Margin="10" Background="#FF293955" CornerRadius="5" BorderBrush="#FF000000" BorderThickness="2">
                <Border VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Padding="4" Background="#FFFFFFFF" CornerRadius="5" BorderBrush="#FF000000" BorderThickness="0">
                    <Border VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Padding="4" Background="#FF293955" CornerRadius="5" BorderBrush="#FF000000" BorderThickness="0">
                        <Grid>
                            <StackPanel Orientation="Vertical">

                                <TextBlock Text="Забронирован" FontSize="24" TextDecorations="Underline" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,10">
									<TextBlock.Foreground>
										<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
											<GradientStop Color="White" Offset="0"/>
											<GradientStop Color="White" Offset="1"/>
											<GradientStop Color="#FFD44A4A" Offset="0.482"/>
										</LinearGradientBrush>
									</TextBlock.Foreground>
                                </TextBlock>

                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*" />
                                        <ColumnDefinition Width="2*" />
                                    </Grid.ColumnDefinitions>
                                    <TextBlock Text="ФИО:" HorizontalAlignment="Right" Foreground="White" VerticalAlignment="Center" />
                                    <TextBlock Text="{Binding OrderUser}" HorizontalAlignment="Stretch" Grid.Column="1" Foreground="White"/>
                                </Grid>
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*" />
                                        <ColumnDefinition Width="2*" />
                                    </Grid.ColumnDefinitions>
                                    <TextBlock Text="№ карты:" HorizontalAlignment="Right" Foreground="White" VerticalAlignment="Center" />
                                    <TextBlock Text="{Binding OrderCard}" HorizontalAlignment="Stretch" Grid.Column="1" Foreground="White"/>
                                </Grid>

                                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,50,0,0">
                                    <Button x:Name="btnorder_start" Content="{Binding Btncaption, Mode=TwoWay}" Style="{DynamicResource ButtonStyleSmallBtn}" FontWeight="Bold" Width="80.021" Foreground="{Binding Btnbrush}" Tag="{Binding Id}" Click="btnorder_start_Click" Margin="0,0,10,0" />
                                    <Button x:Name="btnorder_cancel" Content="Снять" Style="{DynamicResource ButtonStyleSmallBtn}" Width="80.021" FontWeight="Bold" Foreground="White" Click="btnorder_cancel_Click"  Margin="10,0,0,0" />
                                </StackPanel>
                            </StackPanel>
                        </Grid>
                    </Border>
                </Border>
            </Border>
        </DataTemplate>

        <local:TableTemplateSelector x:Key="myselector"
            DefaultTemplate="{StaticResource DefaultDataTemplate}"
            OrderTemplate="{StaticResource OrderDataTemplate}" />

        <Style x:Key="SimpleListBoxItem" TargetType="ListBoxItem">
            <Setter Property="FocusVisualStyle" Value="{x:Null}" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ListBoxItem">
                        <Border 
                           Name="Border"
                           Padding="2"
                           SnapsToDevicePixels="true">
                            <ContentPresenter />
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

    </UserControl.Resources>

    <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
                <ListBox Name="Tablelist"
	                    IsSynchronizedWithCurrentItem="True" 
	                    ItemsSource="{Binding Items}"
	                    ItemContainerStyle="{DynamicResource SimpleListBoxItem}"
                        ItemTemplateSelector="{StaticResource myselector}"
	                    ScrollViewer.VerticalScrollBarVisibility="Disabled"
                        
	                    >
                <ListBox.Background>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#AA004886" Offset="0" />
                        <GradientStop Color="#AAFFFFFF" Offset="1" />
                    </LinearGradientBrush>
                </ListBox.Background>
                <ListBox.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel IsItemsHost="True" 
	                        Orientation="Horizontal"
	                                                Width="{Binding 
	                          Path=ActualWidth,
	                          RelativeSource={RelativeSource 
	                              Mode=FindAncestor, 
	                              AncestorType=
	                                 {x:Type ScrollContentPresenter}}}" />
                    </ItemsPanelTemplate>
                </ListBox.ItemsPanel>
            </ListBox>
        </ScrollViewer>
    </Grid>
</UserControl>

По событию загрузки этого контрола вызывается метод:

Код: plaintext
1.
2.
3.
4.
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
            tables = GlobalVariables.remote.GetTables();
            Tablelist.ItemsSource = tables;
}


**********

Сам контрол:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<UserControl x:Class="CueSelectorControl.CueControl"
             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">
        <Grid x:Name="LayoutRoot">
        <Border Width="28" Height="86" Background="#FF7F8A93" CornerRadius="5">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                    <RowDefinition Height="*" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>

                <Button x:Name="btnUp" Click="btnUp_Click" Grid.Row="0" Content="" Margin="0" Height="26" Style="{DynamicResource ButtonStyleArrowUp}" Width="26"/>
                <Button x:Name="btnDown" Click="btnDown_Click" Grid.Row="2" Content="" Margin="0" Height="26" Style="{DynamicResource ButtonStyleArrowDown}" Width="26"/>
                <TextBlock x:Name="tbCueCount" Grid.Row="1" Text="0" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="21.333" FontWeight="Bold" Foreground="White" />

            </Grid>
        </Border>
    </Grid>

И его код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
namespace CueSelectorControl
{
    public partial class CueControl : UserControl
    {
        public static readonly DependencyProperty CurrentCueCountProperty =
            DependencyProperty.Register("CurrentCueCount", typeof(int), typeof(CueControl), new PropertyMetadata(0, OnMyPropertyChanged));

        public  int CurrentCueCount
        {
            get { return (int)GetValue(CurrentCueCountProperty); }
            set 
            {
                SetValue(CurrentCueCountProperty, value);
            }
        }

        private static void OnMyPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            CueControl control = d as CueControl;
            if (control == null)
            {
                return;
            }
    
            control.UpdateLayout();
        }

        public CueControl()
        {
            InitializeComponent();
            CurrentCueCount = 0;
        }

        private void btnUp_Click(object sender, RoutedEventArgs e)
        {
            CurrentCueCount++;
            tbCueCount.Text = CurrentCueCount.ToString();
        }

        private void btnDown_Click(object sender, RoutedEventArgs e)
        {
            if (CurrentCueCount > 0)
            {
                CurrentCueCount--;
                tbCueCount.Text = CurrentCueCount.ToString();
            }
        }
    }
}

******
tables - переменная типа ObserbableCollection<PlayTable>, где PlayTable:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class PlayTable : INotifyPropertyChanged
{
        private int _cueCount;
        public int CueCount
        {
            get { return _cueCount; }
            set 
            {
                _cueCount = value;
                //OnPropertyChanged(new PropertyChangedEventArgs("CueCount"));
                PropertyChanged(this, new PropertyChangedEventArgs("CueCount"));
            }
        }

        public event PropertyChangedEventHandler PropertyChanged = delegate { };
        public void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, e);
        }
}
...
Рейтинг: 0 / 0
13.01.2011, 12:18
    #37056378
Denis Gladkikh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
aleks-sam,

уберите из конструктора CurrentCueCount = 0; все равно в объявлении DependencyProperty это уже проставлено. А вот почему не работает когда в конструкторе стоит CurrentCueCount = 0 я не могу ответить, надо покопать.
...
Рейтинг: 0 / 0
13.01.2011, 12:27
    #37056398
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Denis Gladkikhaleks-sam,

уберите из конструктора CurrentCueCount = 0; все равно в объявлении DependencyProperty это уже проставлено. А вот почему не работает когда в конструкторе стоит CurrentCueCount = 0 я не могу ответить, надо покопать.
бл?*:!, убрал CurrentCueCount = 0 в конструкторе и биндинг заработал.
Что это хначит?
...
Рейтинг: 0 / 0
13.01.2011, 12:34
    #37056423
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
aleks-samбл?*:!, убрал CurrentCueCount = 0 в конструкторе и биндинг заработал.
Что это хначит?Значит, что binding заменялся на 0.
...
Рейтинг: 0 / 0
13.01.2011, 12:42
    #37056446
Denis Gladkikh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Алексей Кaleks-samбл?*:!, убрал CurrentCueCount = 0 в конструкторе и биндинг заработал.
Что это хначит?Значит, что binding заменялся на 0.
че??? а в методах btnDown_Click и btnUp_Click чего же не заменяется на 0?

Думаю это баг WPF, надо бы создать багрепорт на connect.microsoft.com, если ни у кого желания его создавать нет, то я создам потом как время будет.
...
Рейтинг: 0 / 0
13.01.2011, 12:45
    #37056455
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Denis GladkikhАлексей Кпропущено...
Значит, что binding заменялся на 0.
че??? а в методах btnDown_Click и btnUp_Click чего же не заменяется на 0?

Думаю это баг WPF, надо бы создать багрепорт на connect.microsoft.com, если ни у кого желания его создавать нет, то я создам потом как время будет.Binding является одним из типов значений DependencyProperty. Если я правильно понял, произошло что-то вроде:
Код: plaintext
1.
2.
3.
myTextBox.SetBinding(TextBox.TextProperty, new Binding("SomeProperty"));
myTextBox.Text = "bla bla bla"; // тут Binding убивается и значением свойства становится указанное значение.

...
Рейтинг: 0 / 0
13.01.2011, 12:58
    #37056485
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Я сам в шоке. Может и Алексей и прав. Блин, дела...
...
Рейтинг: 0 / 0
13.01.2011, 12:58
    #37056486
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Denis Gladkikhче??? а в методах btnDown_Click и btnUp_Click чего же не заменяется на 0?Там нет присваивания этому свойству 0.
...
Рейтинг: 0 / 0
13.01.2011, 13:12
    #37056523
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Хотя нет, чё-то я не то ляпнул. Как же тогда TwoWay Binding будет работать. :-)

Сори.
...
Рейтинг: 0 / 0
13.01.2011, 13:20
    #37056542
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Ну что тогда в конструкторе происходит тогда с CurrentCueCount = 0?
...
Рейтинг: 0 / 0
13.01.2011, 13:29
    #37056570
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Denis GladkikhДумаю это баг WPF
)))
читать о том как определяется значение DependencyProperty
...
Рейтинг: 0 / 0
13.01.2011, 13:34
    #37056593
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
aleks-samНу что тогда в конструкторе происходит тогда с CurrentCueCount = 0?Ну может правда какая ошибка/особенность, связанная с тем, что свойству с Binding-гом было "не вовремя" :-) присвоено значение. Такой пример вроде нормально работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
WPF4

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Slider Height="23" HorizontalAlignment="Left" Margin="12,12,0,0" Name="slider1" VerticalAlignment="Top" Width="479" 
                Value="{Binding Value, ElementName=progressBar1, Mode=TwoWay}"/>
        <ProgressBar Height="21" HorizontalAlignment="Left" Margin="12,52,0,0" Name="progressBar1" VerticalAlignment="Top" Width="479" Maximum="10" />
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="12,79,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
    </Grid>
</Window>

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            slider1.Value = 0;
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            slider1.Value = 5;
        }
    }

Возможно именно в Вашем случае сказалась какая-то особенность.
...
Рейтинг: 0 / 0
13.01.2011, 13:39
    #37056609
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
Ну у меня такая вот ситуация :)
Буде время проверю времена инициализации.
...
Рейтинг: 0 / 0
13.01.2011, 13:55
    #37056658
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binding UserControl не работает
ребята, ну что вы в самом деле, читайте доку - Dependency Property Value Precedence
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Binding UserControl не работает / 25 сообщений из 44, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]