どのようにコントロールプロパティを別のウィンドウプロパティにバインドするのですか?

私は窓があり、そこには長方形があります。その塗りつぶしを別の矩形塗りつぶしのグラデーション停止にしたいのですが、別のウィンドウで行います。 「ソース」ウィンドウは次のように定義されます。


矩形があります

    
        
            
                
                    ...
                
            
        
    

とプロパティ:

public partial class ColorSelectorWindow : Window
{
    public Brush SelectedBrush
    {
        get
        {
            return ColorPicker.Fill;
        }
    }
}

今、ターゲットウィンドウで、私は矩形を定義します:

    
        
            
                
                
            
        
    

BrushToColorConverterはBrushをColorに変換します。これは動作していないと私はなぜ、私は "ソース"ウィンドウに対処することに問題があるかわからない..私はターゲットウィンドウのコンストラクタでそれを構築しています:

        public MainWindow()
        {
            colorWindow = new ColorSelectorWindow();
            colorWindow.Name = "colorWindowSelector";
            colorWindow.Hide();
            InitializeComponent();
        }

私は隠して、それを示しているだけで、確かに閉じているわけではありません。それを正しくバインドするには?

1
OwnerWindow プロパティにbindinを使用します。 stackoverflow.com/questions/7825379/…
追加された 著者 WPF-it,

1 答え

MainWindowにSelectedBrushプロパティを公開する必要があり、RelativeSourceを使用してこのBrushの色にバインドするだけで済みます。だから、これはあなたのために行います -


   
     
        
        
     
   

しかし、ウィンドウを作成している間は、オーナーをMainWindowに設定してください。

public MainWindow()
{
   InitializeComponent();
   colorWindow = new ColorSelectorWindow();
   colorWindow.Name = "colorWindowSelector";
   colorWindow.Owner = this;
   colorWindow.Hide();
}
1
追加された
あなたの矩形が同じウィンドウ内にプロパティを持っている場合は、単にバインドパスを置き換えてSelectedBrushをOwner.SelectedBrushの代わりにします。Ownerを設定する必要はありません:)
追加された 著者 Rohit Vats,
さて、あなたの子供のウィンドウはあなたのメインウィンドウにプロパティを渡すしたい。 MVVMを実装している場合、答えはここにあります。 stackoverflow.com/questions/7507527/…
追加された 著者 Rohit Vats,
そうでなければ、MVVMをフォローしないと、そのプロパティをベースクラスに入れ、そのベースクラスから両方のウィンドウを継承し、その両方にアクセスできるようにすることをお勧めします。問題が発生した場合にお知らせください。
追加された 著者 Rohit Vats,
私はそのプロパティを別のウィンドウに持っていなければなりません
追加された 著者 deha,
はい、しかし、SelectedBrushはOwnedウィンドウにあり、所有しているウィンドウにはありません。ターゲット(MainWindow)から、私はColorSelectorWindow.SelectedBrushに対処する必要があります。あなたのソリューションは、MainWindow.SelectedBrushを探していて、私が探しているものではないColorSelectorWindowの長方形の塗りつぶしにバインドしているようです...または、私はsthを誤解しました
追加された 著者 deha,