Помогите перенести написанное на XAML, в code behind

125
01 мая 2019, 13:50

Нужна помощь в следующем. У меня в окне есть интерфейс для работы с графикой. Мне нужно чтобы при нажатии этот элемент подсвечивался. Реализовать это с помощью XAMl получилось, но когда переношу в code behind, у меня binding не реагирует на обновление, и соответственно не подсвечивается элемент. Вот код в XAML(он работает как надо):

<Window.Resources>
    <buildingDemo:BoundsConverter x:Key="BoundsConverter"></buildingDemo:BoundsConverter>
</Window.Resources>
<Grid x:Name="Container">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="1.61*"/>
        <ColumnDefinition Width="1*"/>
    </Grid.ColumnDefinitions>
    <h:HelixViewport3D x:Name="hVp3D" ZoomExtentsWhenLoaded="True" MouseDown="UIElement_OnMouseDown" Background="LightGray" IsHeadLightEnabled="True" ZoomAroundMouseDownPoint="True" RotateAroundMouseDownPoint="True">
        <h:BoundingBoxVisual3D BoundingBox="{Binding SelectedObject, Converter={StaticResource BoundsConverter}}" Diameter="0.2"/>
    </h:HelixViewport3D>
    <pt:PropertyGrid Grid.Column="1" SelectedObject="{Binding SelectedObject}" TabVisibility="Collapsed" Margin="4" RequiredAttribute="{x:Type componentModel:BrowsableAttribute}"/>
</Grid>

Элемент который должен выделять выбранный объект - это BoundingBoxVisual3D. Вот code behind:

private BoundingBoxVisual3D createBinding()
{
    BoundingBoxVisual3D boundBox = new BoundingBoxVisual3D();
    Binding binding = new Binding();
    binding.Source = viewModel.SelectedObject;
    binding.Converter = new BoundsConverter();
    binding.Mode = BindingMode.OneWay;
    boundBox.Diameter = 0.2;
    BindingOperations.SetBinding(boundBox, BoundingBoxVisual3D.BoundingBoxProperty, binding);
    return boundBox;
}

Здесь при нажатии на какой-либо объект, в viewModel.SelectedObject помещается этот объект. Все остальное отлично создавалось и в коде, но из-за того что эта часть не получилась - пришлось перейти в XAML. Теперь вышло ужасно - часть реализации в XAML, часть в коде, хочется все сгрести в одну кучу. Спасибо.

READ ALSO
Создание Word из данных sql на С#

Создание Word из данных sql на С#

У меня есть бдЯ подключаюсь к ней и делаю запрос на интересующие поля

142
Добавление обработчика события в VB.Net

Добавление обработчика события в VB.Net

Какова аналогичная конструкция для следующего в VBNet? Как-то через AddHandler нужно будет?

135
Unity MissingComponentException: There is no &#39;GameObject&#39; attached to the &ldquo;BG&rdquo; game object, but a script is trying to access it

Unity MissingComponentException: There is no 'GameObject' attached to the “BG” game object, but a script is trying to access it

У меня есть GameObject BG , хочу что бы при изменении Toggle он отключался

285
Изменение значений атрибутов name в input

Изменение значений атрибутов name в input

На aspx странице есть форма:

131