All docs
V21.2
21.2
21.1
20.2
20.1
The page you are viewing does not exist in version 20.1. This link will take you to the root page.
19.2
The page you are viewing does not exist in version 19.2. This link will take you to the root page.
19.1
The page you are viewing does not exist in version 19.1. This link will take you to the root page.
18.2
The page you are viewing does not exist in version 18.2. This link will take you to the root page.
18.1
The page you are viewing does not exist in version 18.1. This link will take you to the root page.
17.2
The page you are viewing does not exist in version 17.2. This link will take you to the root page.

ReadOnlyDependencyPropertyBindingBehavior Class

Allows you to bind read-only dependency and attached properties to a ViewModel’s properties.

Namespace: DevExpress.Mvvm.UI

Assembly: DevExpress.Xpf.Core.v21.2.dll

Declaration

public class ReadOnlyDependencyPropertyBindingBehavior :
    Behavior<DependencyObject>

Remarks

The following properties are required to use ReadOnlyDependencyPropertyBindingBehavior:

Property Description
Binding Gets or sets a binding that should be applied to the specified property. This is a dependency property.
Property or DependencyProperty Gets or sets the bound property. This is a dependency property.

The following table lists additional customization properties:

Property Description
Command Gets or sets the command that the ReadOnlyDependencyPropertyBindingBehavior should execute when the bound property’s value is changed (specified in the Property or DependencyProperty). This is a dependency property.
IsEnabled Gets or sets whether a bound ViewModel’s property should be updated. This is a dependency property.

Follow the steps below to bind a read-only dependency property to a ViewModel’s property:

  1. Attach the behavior to a target control and choose one of the following options:

    • Set the Property to a target property’s name:

       <TreeView>
           <dxmvvm:Interaction.Behaviors>
               <dxmvvm:ReadOnlyDependencyPropertyBindingBehavior Property="SelectedItem" />
           </dxmvvm:Interaction.Behaviors>
       </TreeView>
      
    • Use the DependencyProperty to specify a target dependency/attached property:

       <TreeView>
          <dxmvvm:Interaction.Behaviors>
              <dxmvvm:ReadOnlyDependencyPropertyBindingBehavior DependencyProperty="{x:Static TreeView.SelectedItemProperty}" />
          </dxmvvm:Interaction.Behaviors>
       </TreeView>
      
  2. Use the behavior’s Binding property to specify a binding to the target ViewModel’s property.

    <TreeView>
        <dxmvvm:Interaction.Behaviors>
            <dxmvvm:ReadOnlyDependencyPropertyBindingBehavior Binding="{Binding SelectedMenuItem, Mode=OneWayToSource}"
                                                              DependencyProperty="{x:Static TreeView.SelectedItemProperty}" />
        </dxmvvm:Interaction.Behaviors>
    </TreeView>
    

The following code sample binds the TreeView.SelectedItem read-only property to the ViewModel’s SelectedMenuItem property:

<UserControl x:Class="DXSample.Views.MainView"
<!-- ... -->
             xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
             <!-- ... -->
             xmlns:ViewModels="clr-namespace:DXSample.ViewModels"
             <!-- ... -->
    <UserControl.DataContext>
        <ViewModels:MainViewModel />
    </UserControl.DataContext>

    <DockPanel>
        <TreeView Name="view" ItemsSource="{Binding Menu}">
            <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type ViewModels:MenuItemViewModel}" ItemsSource="{Binding Items}">
                    <TextBlock Text="{Binding Title}" />
                </HierarchicalDataTemplate>
            </TreeView.Resources>
            <dxmvvm:Interaction.Behaviors>
                <dxmvvm:ReadOnlyDependencyPropertyBindingBehavior Binding="{Binding SelectedMenuItem, Mode=OneWayToSource}"
                                                                  DependencyProperty="{x:Static TreeView.SelectedItemProperty}" />
            </dxmvvm:Interaction.Behaviors>
        </TreeView>
    </DockPanel>

</UserControl>
using System.Collections.ObjectModel;
using System.Windows;
using DevExpress.Mvvm;
using DevExpress.Mvvm.DataAnnotations;
// ...
    public class MainViewModel : ViewModelBase {
        public MenuItemViewModel SelectedMenuItem {
            get { return GetProperty(() => SelectedMenuItem); }
            set { SetProperty(() => SelectedMenuItem, value); }
        }

        [Command]
        public void Open() {
        // ...
        }
        // ...
    }

View Example

Inheritance

Object
DispatcherObject
DependencyObject
Freezable
Animatable
DevExpress.Mvvm.UI.Interactivity.AttachableObjectBase
DevExpress.Mvvm.UI.Interactivity.Behavior
DevExpress.Mvvm.UI.Interactivity.Behavior<DependencyObject>
ReadOnlyDependencyPropertyBindingBehavior
See Also