# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > WPF > سوال: bind نشدن

## kavayo

سلام
من یک فرم دارم که از چندین usercontrol تشکیل شده یکی از این uc ها شامل چندین textbox هست که با کلیک دکمه ای یک پنجره باز می‌شود و جست و جویی داخل آن انجام می‌شود حال نتیجه این جست و جو را می‌خواهم به uc  والد برگردونم با mvvm اما انجام نمیشود

----------


## SajjadKhati

سلام
شما پروژه یا کد های مربوطه را به همراه متن خطا یا هر چیز مورد نظر ، بذارید .
این جوری ، چیزی نمیشه گفت !

----------


## kavayo

<Window x:Class="Fruit_Shop.Views.BuyingPage"
 <uc1:VendorUc x:Name="venuc" DataContext="{Binding Path=vendor,UpdateSourceTrigger=PropertyChanged,Mo  de=TwoWay}"></uc1:VendorUc>

define uc...........

<TextBlock HorizontalAlignment="Left" Grid.Column="0" Padding="5,5,5,5" Grid.Row="0" VerticalAlignment="Center" Style="{DynamicResource MaterialDesignTextBlock}" >نام</TextBlock>


            <TextBox MinWidth="200" Grid.Column="2" Grid.Row="0" Padding="5,5,5,5" x:Name="txtfname"
                     Text="{Binding FirstName, Mode=TwoWay}" 
                         HorizontalAlignment="Left" VerticalAlignment="Center" Style="{DynamicResource MaterialDesignTextBox}" ></TextBox>

 <Button Content="انتخاب مشتری " Style="{DynamicResource MaterialDesignFlatAccentBgButton}" Margin="20"
                    Command="{Binding Path=OpenMyWindow}" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2"
                    CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"></Button>






باز کردن پنجره ی جست  جوی کاربر 
private void OpenWindowClick(Window obj)
        {
            SearchVendorPage p = new SearchVendorPage();
            p.Show();
           
           
        }

بستن فرم جست و جو و ارسال اطلاعات به window اصلی

 private void closeWindowClick(Window obj)
        {
}

----------


## SajjadKhati

سلام
خوب ، مشکلش چیه؟

شما میتونید توی متد closeWindowClick ، توسط obj ، مقدار پروپرتی Text ئه TextBox (در صورت public یا داشتنِ سطح دسترسی مورد نیاز) در ویندوز دیگه را بخونید .
یا اگه TextBox تون private هست ، میتونید Text ئه TextBox را داخل یه پروپرتی دیگه در همون ویندوز بریزید و در متد closeWindowClick ، اون پروپرتی را بخونید .

البته ، شاید بهتر اش اینه که اگه مشکل Binding ندارید ، در ویندوز اصلی تون ، Binding کنید .
فرضا Text ئه TextBox تون را به پروپرتی ای در BuyingPage تون ، binding کنید .

-----------

command ، مکانیسمی هست برای آپدیت کردن model توسط view (اون هم اغلب ، از ورودی وسیله ها طراحی شده) .
شما در این مسئله تون ، دو ویندوز و user control دارید (از user control ، به ویندوز میخواین داده منتقل کنید) که هر دو ، در لایه ی view هستن . دیگه نیازی به استفاده از command و قوانین mvvm مطرح نیست .
هر چند بدون command ها هم با استفاده از متدها در viewmodel هم میشه این کار را انجام داد و model را توسط view ، آپدیت کرد (کار کرد command ها ، بیشتر در command های غیر دستی (غیر از custom command) هستن که راحت تر عملیات مربوط به ورودی ها مثل copy و اینها را در mvvm پیاده سازی کرد) .


ضمنا ، کدی که اینجا گذاشتید که کامل نیست که بشه از روش نظر بی نقص داد .
فرضا DataContext (کلا Source ئه Binding) ئه پروپرتی Text ئه TextBox ای که دادید ، حداقل تا زمانی که کد xaml اش را در بالا دادید و نوشتید ، معلوم نیست چیه (کد سی شارپ اش هم اگه باشه که ندادید) .
یا فرضا چرا UpdateSourceTrigger برای Binding ئه DataContext ئه VendorUc تعریف شده یا براش 2 طرفه تعیین شده؟ 
مگه میخواین وقتی  DataContext ئه VendorUc تغییر کرد ، پروپرتی vendor هم تغییر کنه که بهش مربوط نمیشه؟
و ... .

----------

