Advertisement
Guest User

reactiveui bind

a guest
Jan 30th, 2015
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. // MainWindow.xaml.cs
  2.  
  3. using System.Windows;
  4. using ReactiveUI;
  5.  
  6. namespace WpfApplication1
  7. {
  8. /// <summary>
  9. /// Interaction logic for MainWindow.xaml
  10. /// </summary>
  11. public partial class MainWindow : Window, IViewFor<string>
  12. {
  13. public MainWindow()
  14. {
  15. InitializeComponent();
  16.  
  17. this.Bind(this, v => v.DataContext, v => v.ViewModel);
  18. }
  19.  
  20. object IViewFor.ViewModel
  21. {
  22. get { return ViewModel; }
  23. set { ViewModel = (string) value; }
  24. }
  25.  
  26. public static readonly DependencyProperty ViewModelProperty = DependencyProperty.Register(
  27. "ViewModel", typeof (string), typeof (MainWindow));
  28.  
  29. public string ViewModel
  30. {
  31. get { return (string) GetValue(ViewModelProperty); }
  32. set { SetValue(ViewModelProperty, value); }
  33. }
  34.  
  35. private int i;
  36.  
  37. private void SetViewModel_Click(object sender, RoutedEventArgs e)
  38. {
  39. i++;
  40. ViewModel = i.ToString();
  41. }
  42.  
  43. private void SetDataContext_Click(object sender, RoutedEventArgs e)
  44. {
  45. i++;
  46. DataContext = i.ToString();
  47. }
  48. }
  49. }
  50.  
  51.  
  52. // MainWindow.xaml
  53.  
  54. <Window x:Class="WpfApplication1.MainWindow"
  55. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  56. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  57. Height="350" Width="525"
  58. >
  59. <!-- DataContext="{Binding RelativeSource={RelativeSource Self}, Path=ViewModel, Mode=TwoWay}" -->
  60. <Grid>
  61. <Grid.RowDefinitions>
  62. <RowDefinition />
  63. <RowDefinition />
  64. </Grid.RowDefinitions>
  65.  
  66. <Button Grid.Row="0" Click="SetViewModel_Click" x:Name="btnViewModel">
  67. <TextBlock>
  68. <Run>Set ViewModel. CurrentValue: </Run><Run Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Window}, Path=ViewModel}" />
  69. </TextBlock>
  70. </Button>
  71. <Button Grid.Row="1" Click="SetDataContext_Click" x:Name="btnDataContext">
  72. <TextBlock>
  73. <Run>Set DataContext. CurrentValue: </Run><Run Text="{Binding Mode=OneWay}" />
  74. </TextBlock>
  75. </Button>
  76. </Grid>
  77. </Window>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement