Загруженная StackPanel не запускается на странице .cs - PullRequest
0 голосов
/ 18 мая 2010
 <sdk:DataGridTemplateColumn>
                <sdk:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Loaded ="SPImage_Loaded" Orientation="Horizontal" Background="Transparent" >
                            <Button x:Name="myButton"   
                        Click="Btn_Click">
                            <Image  x:Name="imgMarks" " Stretch="None"/>
                        </Button>
                        </StackPanel>
                    </DataTemplate>
                </sdk:DataGridTemplateColumn.CellTemplate>
            </sdk:DataGridTemplateColumn>

в .cs я определил событие для панели стека

 private void SPImage_Loaded(object sender, RoutedEventArgs e)
    {
        try
        {
            var TargetMarks = sender as StackPanel;
            Image imgMarks= (Image)TargetScore.FindName("imgMarks");

             Marks obj = (Marks )TargetMarks.DataContext;

// here marks oject  would be  containg the  details
// here if marks.score object value  is  1 then bind the image
//else
// dnt bind the image . that is  logic i am trying to  do.

            imgMarks.Source = new BitmapImage(new Uri("/Images/a1.png", UriKind.Relative));
        }
        catch (Exception)
        {
            throw;
        }
    }

Есть ли лучшее решение для достижения этой цели?

Ответы [ 2 ]

0 голосов
/ 19 мая 2010

Я использовал конвертер для подобных вещей. Свяжите источник вашего изображения с вашим объектом Marks, а затем решите, на чем основан источник.

Надеюсь, это поможет

Статья Tim Heur о преобразователях и привязке данных

0 голосов
/ 18 мая 2010

Не видя полного файла xaml и .cs, вы уверены, что класс x: для пользовательского элемента управления, указанного в xaml, совпадает с именем класса в вашем файле .cs?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...