تخفیف های داغ در جشنواره تابستانه توسینسو تخفیف های داغ در جشنواره تابستانه توسینسو
مانده تا پایان تخفیف
مشاهده دوره ها
0

نحوه استفاده متغیر و 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 استفاده کرد؟؟

پرسیده شده در 1398/06/13 توسط

4 پاسخ

0

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

 

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

 

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

پاسخ در 1398/06/16 توسط
0

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

        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"/> اینجوری مشکل حل میشه. نظرتون چیه؟ این جوری خوبه؟

 

پاسخ در 1398/06/16 توسط
0

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

پاسخ در 1398/06/16 توسط

پاسخ شما