Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // MainWindow.xaml.cs
- using System.Windows;
- using ReactiveUI;
- namespace WpfApplication1
- {
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window, IViewFor<string>
- {
- public MainWindow()
- {
- InitializeComponent();
- this.Bind(this, v => v.DataContext, v => v.ViewModel);
- }
- object IViewFor.ViewModel
- {
- get { return ViewModel; }
- set { ViewModel = (string) value; }
- }
- public static readonly DependencyProperty ViewModelProperty = DependencyProperty.Register(
- "ViewModel", typeof (string), typeof (MainWindow));
- public string ViewModel
- {
- get { return (string) GetValue(ViewModelProperty); }
- set { SetValue(ViewModelProperty, value); }
- }
- private int i;
- private void SetViewModel_Click(object sender, RoutedEventArgs e)
- {
- i++;
- ViewModel = i.ToString();
- }
- private void SetDataContext_Click(object sender, RoutedEventArgs e)
- {
- i++;
- DataContext = i.ToString();
- }
- }
- }
- // MainWindow.xaml
- <Window x:Class="WpfApplication1.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Height="350" Width="525"
- >
- <!-- DataContext="{Binding RelativeSource={RelativeSource Self}, Path=ViewModel, Mode=TwoWay}" -->
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition />
- <RowDefinition />
- </Grid.RowDefinitions>
- <Button Grid.Row="0" Click="SetViewModel_Click" x:Name="btnViewModel">
- <TextBlock>
- <Run>Set ViewModel. CurrentValue: </Run><Run Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Window}, Path=ViewModel}" />
- </TextBlock>
- </Button>
- <Button Grid.Row="1" Click="SetDataContext_Click" x:Name="btnDataContext">
- <TextBlock>
- <Run>Set DataContext. CurrentValue: </Run><Run Text="{Binding Mode=OneWay}" />
- </TextBlock>
- </Button>
- </Grid>
- </Window>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement