در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

noorani

نحوه استفاده متغیر و property درقسمت xaml - wpf

با سلام خدمت عزیزان

در قسمت کد های c# wpf فرض کنید یه کدی داشته باشیم:

1
public string test = "C:/Users/861.jpg";

چطوری میشه این test را بایند کنم به Datagrid
کد های xaml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<DataGrid x:Name="datagrid_test" HorizontalAlignment="Left" Margin="33,129,0,0" VerticalAlignment="Top" Height="186" Width="940">
           <DataGrid.Columns>
                
               <DataGridTemplateColumn Header="تصویر">
                   <DataGridTemplateColumn.CellTemplate>
                       <DataTemplate >
                           <Image  Source="{Binding this.test}" Height="50"/>
                       </DataTemplate>
                   </DataGridTemplateColumn.CellTemplate>
               </DataGridTemplateColumn>
 
                
               <DataGridTextColumn Header="کاربر ثبت کننده" Binding="{Binding FullName}" Width="90" >
               </DataGridTextColumn>
 
           </DataGrid.Columns>
 
       </DataGrid>

 

1
<Image  Source="{Binding this.test}" Height="50"/> درست کار نمی کنه

اسم فایل در دیتابیس هست!
زمانی که در دیتابیس مسیر کامل به اسم فایل را ذخیره کنم و ستون مربطه را Binding کنم مشکلی ندارم

اما الان در دیتابیس فقط اسم فایل را دارم و مسیر را بعدش به دست میارم و کنارش میارم و در یک متغیر ذخیره می کنم مثل نمونه بالا
الان می خوام این مسیر را که در متغیر ذخیره کردم Binding کنم

اما چطوری میشه از متغیر ها و پراپرتی در xaml استفاده کرد؟؟

لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
حسین احمدی

سلام، شما می تونید موقعی که دارید خروجی رکورد ها رو از دیتابیس می خونید در زمان کوئری مسیر رو به فایل اضافه کنید، برای مثال:

 

var filesPath = "C:\\Users\\
var result = dbContext.Files.Select(f=> new
{
Id = f.Id,
FilePath = filesPath + f.FileName
}).ToList()

 

با کد بالا، بعد از اجرای کوئری مسیر به نام فایل اضافه میشه.

لطفاً سوال خود را در انجمن مطرح کنید، به سوالات در پیام خصوصی پاسخ داده نخواهد شد
noorani

ممنون حسین جان
بعد از کلی بررسی به همین نتیجه رسیدم
ولی به صورت زیر

        private string Path()
        {
            string path = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            DirectoryInfo directory = new DirectoryInfo(path);
            string imagePath = path + @"\MyAppName\Images\";
            return imagePath;
        }
-----------------
  private void BindGrid()
        {   
            /////////یک query ساده
            var query = db.Database.SqlQuery("select * from Customers").ToList();
 
            ///////// اضافه کردن مسیر عکس به نام عکس ذخیره شده در دیتا بیس
            foreach (var t in query)
            {
                t.CustomerImage = Path() + t.CustomerImage;
            }
            //پر کردن DataGrid
            DataG_Customer.ItemsSource = query;
----------------
این بایند را هم وصل کردم به همون ستون دیتابیس
"{Binding CustomerImage}" Height="50"/>
اینجوری مشکل حل میشه.
نظرتون چیه؟ این جوری خوبه؟

 

حسین احمدی

سلام مجدد، روشی که شما رفتید هم اوکی هست، فقط خصوصیت CustomerImage سمت کلاینت اصلاح میشه و تفاوت چندانی نمی کنه.

لطفاً سوال خود را در انجمن مطرح کنید، به سوالات در پیام خصوصی پاسخ داده نخواهد شد
noorani

تشکر حسین جان

پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....